{"version":3,"file":"index.cjs","sources":["../src/core/cli/defineConfig.ts","../src/core/cli/defineRuntime.ts","../src/core/config/defineScope.ts","../src/core/constants.ts","../src/core/lib/pubsub.ts","../src/core/lib/qs.ts","../src/core/helpers.ts","../src/core/plugins/props/PropsContext.ts","../src/core/plugins/props/useProps.ts","../src/core/plugins/props/components/booleanProp.tsx","../src/core/plugins/props/components/numberProp.tsx","../src/core/plugins/props/components/selectProp.tsx","../src/core/plugins/props/components/stringProp.tsx","../src/core/plugins/props/components/textProp.tsx","../src/core/plugins/props/components/prop.tsx","../src/core/plugins/props/PropsInspector.tsx","../src/core/lib/isEqual.ts","../src/core/WorkshopContext.ts","../src/core/useWorkshop.ts","../src/core/plugins/props/lib/zlib/zlib.ts","../src/core/plugins/props/helpers.ts","../src/core/plugins/props/propsReducer.ts","../src/core/plugins/props/PropsProvider.tsx","../src/core/plugins/props/hooks/useBoolean.ts","../src/core/plugins/props/hooks/useNumber.ts","../src/core/plugins/props/hooks/useSelect.ts","../src/core/plugins/props/hooks/useString.ts","../src/core/plugins/props/hooks/useText.ts","../src/core/plugins/props/index.ts","../src/core/WorkshopProvider.tsx","../src/core/workshopReducer.ts","../src/core/frame/formatStack.ts","../src/core/frame/WorkshopCanvas.tsx","../src/core/lib/isArray.ts","../src/core/lib/isRecord.ts","../src/core/frame/WorkshopMainController.ts","../src/core/frame/WorkshopFrame.tsx","../src/core/location/LocationStore.ts","../src/core/GlobalStyle.ts","../src/core/inspector/InspectorHeader.tsx","../src/core/inspector/WorkshopInspector.tsx","../src/core/lib/debounce.ts","../src/core/navbar/NavbarBreadcrumbs.tsx","../src/core/navbar/OpenCanvasButton.tsx","../src/core/navbar/SchemeMenu.tsx","../src/core/navbar/ViewportMenu.tsx","../src/core/navbar/ZoomMenu.tsx","../src/core/navbar/WorkshopNavbar.tsx","../src/core/navigator/helpers.ts","../src/core/navigator/SearchResults.tsx","../src/core/navigator/StoryTree.tsx","../src/core/navigator/WorkshopNavigator.tsx","../src/core/WorkshopCanvas.tsx","../src/core/WorkshopFrameController.ts","../src/core/Workshop.tsx","../src/core/mount.tsx","../src/core/mountFrame.tsx","../src/core/useAction.ts"],"sourcesContent":["import {WorkshopConfig} from '../config'\n\n/** @public */\nexport interface WorkshopConfigOptions extends Omit<WorkshopConfig, 'scopes'> {}\n\n/** @public */\nexport function defineConfig(config: WorkshopConfigOptions): WorkshopConfigOptions {\n  return config\n}\n","import {WorkshopRuntime} from '../runtime'\n\n/** @public */\nexport interface WorkshopRuntimeOptions extends WorkshopRuntime {}\n\n/** @public */\nexport function defineRuntime(config: WorkshopRuntimeOptions): WorkshopRuntimeOptions {\n  return config\n}\n","import {WorkshopScope} from './types'\n\n/** @public */\nexport function defineScope(scope: WorkshopScope): WorkshopScope {\n  return scope\n}\n","/** @internal */\nexport const EMPTY_ARRAY: never[] = []\n\n/** @internal */\nexport const EMPTY_RECORD: Record<string, unknown> = {}\n\n/** @internal */\nexport const DEFAULT_VIEWPORT_VALUE = 'auto'\n\n/** @internal */\nexport const DEFAULT_ZOOM_VALUE = 1\n\n/** @internal */\nexport const VIEWPORT_OPTIONS: {\n  name: string\n  title: string\n  rect: {width: number | 'auto'; height?: number}\n}[] = [\n  {name: 'auto', title: 'Full', rect: {width: 'auto'}},\n  {name: '768', title: '768px', rect: {width: 768}},\n  {name: '375', title: '375px', rect: {width: 375, height: 667}},\n  {name: '320', title: '320px', rect: {width: 320, height: 568}},\n]\n\n/** @internal */\nexport const ZOOM_OPTIONS: {value: number; title: string}[] = [\n  {value: 0.5, title: '50%'},\n  {value: 0.75, title: '75%'},\n  {value: 1, title: '100%'},\n  {value: 1.5, title: '150%'},\n  {value: 2, title: '200%'},\n  {value: 3, title: '300%'},\n]\n","/** @public */\nexport interface Pubsub<Msg = unknown> {\n  publish: (msg: Msg) => void\n  subscribe: (subscriber: (msg: Msg) => void) => () => void\n}\n\n/** @internal */\nexport function createPubsub<Msg = unknown>(): Pubsub<Msg> {\n  const subscribers = new Set<(msg: Msg) => void>()\n\n  return {\n    publish(msg: Msg) {\n      for (const subscriber of subscribers) {\n        subscriber(msg)\n      }\n    },\n\n    subscribe(subscriber: (msg: Msg) => void) {\n      subscribers.add(subscriber)\n\n      return () => {\n        subscribers.delete(subscriber)\n      }\n    },\n  }\n}\n","/** @internal */\nexport const qs = {\n  parse(str: string): Record<string, string> {\n    const params = new URLSearchParams('?' + str)\n    const q: Record<string, string> = {}\n\n    params.forEach((value, key) => {\n      q[key] = value\n    })\n\n    return q\n  },\n\n  stringify(q: {[key: string]: unknown}): string {\n    return Object.entries(q)\n      .map(([key, value]) => `${key}=${value}`)\n      .join('&')\n  },\n}\n","import {ThemeColorSchemeKey} from '@sanity/ui'\n\nimport {WorkshopScope, WorkshopStory} from './config'\n\n/** @internal */\nexport function resolveLocation(\n  scopes: WorkshopScope[],\n  path: string,\n): {scope: WorkshopScope | null; story: WorkshopStory | null} {\n  const segments = path.split('/').slice(1).filter(Boolean)\n\n  const p = segments.join('/')\n\n  if (segments.length === 0) {\n    return {\n      scope: null,\n      story: null,\n    }\n  }\n\n  for (const scope of scopes) {\n    for (const story of scope.stories) {\n      const storyPath = [scope.name, story.name].filter(Boolean).join('/')\n\n      if (p === storyPath) {\n        return {scope, story}\n      }\n    }\n  }\n\n  return {scope: null, story: null}\n}\n\n/** @internal */\nexport function buildFrameUrl(params: {\n  baseUrl?: string\n  path: string\n  payload: Record<string, unknown>\n  scheme: ThemeColorSchemeKey\n  viewport: string\n  zoom: number\n}): string {\n  const {baseUrl = '/frame/', path, payload, scheme, viewport, zoom} = params\n\n  return [\n    baseUrl,\n    `?path=${encodeURIComponent(path)}`,\n    `&scheme=${scheme}`,\n    `&viewport=${viewport}`,\n    `&zoom=${zoom}`,\n    ...Object.entries(payload).map(([key, value]) => {\n      return `&${key}=${value}`\n    }),\n  ].join('')\n}\n","import {createContext} from 'react'\n\nimport {PropSchema} from './types'\n\n/** @internal */\nexport interface PropsContextValue {\n  registerProp: (propSchema: PropSchema) => void\n  schemas: PropSchema[]\n  setPropValue: (propName: string, value: unknown) => void\n  unregisterProp: (propName: string) => void\n  value: Record<string, unknown>\n}\n\n/** @internal */\nexport const PropsContext = createContext<PropsContextValue | null>(null)\n","import {useContext} from 'react'\n\nimport {PropsContext, PropsContextValue} from './PropsContext'\n\n/** @internal */\nexport function useProps(): PropsContextValue {\n  const props = useContext(PropsContext)\n\n  if (!props) {\n    throw new Error('Props: missing context value')\n  }\n\n  return props\n}\n","import {Box, Checkbox, Flex, Text} from '@sanity/ui'\nimport {memo} from 'react'\n\nimport {BooleanPropSchema} from '../types'\nimport {useProps} from '../useProps'\n\n/** @internal */\nexport const BooleanProp = memo(function BooleanProp(props: {\n  schema: BooleanPropSchema\n  value?: boolean\n}): React.ReactNode {\n  const {schema, value} = props\n  const {setPropValue} = useProps()\n\n  return (\n    <Flex as=\"label\" padding={3}>\n      <Box marginRight={2} style={{lineHeight: 0}}>\n        <Checkbox\n          checked={value || false}\n          onChange={(event) => setPropValue(schema.name, event.currentTarget.checked)}\n        />\n      </Box>\n      <Box paddingY={1}>\n        <Text size={1} weight=\"semibold\">\n          {schema.name}\n        </Text>\n      </Box>\n    </Flex>\n  )\n})\n","import {Box, Text, TextInput} from '@sanity/ui'\nimport {memo} from 'react'\n\nimport {NumberPropSchema} from '../types'\nimport {useProps} from '../useProps'\n\n/** @internal */\nexport const NumberProp = memo(function NumberProp(props: {\n  schema: NumberPropSchema\n  value?: string\n}): React.ReactNode {\n  const {schema, value = ''} = props\n  const {setPropValue} = useProps()\n\n  return (\n    <Box padding={3}>\n      <Text size={1} weight=\"semibold\">\n        {schema.name}\n      </Text>\n      <Box marginTop={2}>\n        <TextInput\n          fontSize={[2, 2, 1]}\n          onChange={(event) => setPropValue(schema.name, Number(event.currentTarget.value))}\n          padding={2}\n          value={value}\n        />\n      </Box>\n    </Box>\n  )\n})\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {Box, Select, Text} from '@sanity/ui'\nimport {memo, useMemo} from 'react'\n\nimport {SelectPropSchema} from '../types'\nimport {useProps} from '../useProps'\n\n/** @internal */\nexport const SelectProp = memo(function SelectProp(props: {\n  schema: SelectPropSchema\n  value: any\n}): React.ReactNode {\n  const {schema, value: valueProp} = props\n  const {setPropValue} = useProps()\n\n  const value = useMemo(() => {\n    const entries = Object.entries(schema.options)\n\n    for (const [k, v] of entries) {\n      if (v === valueProp) {\n        return k\n      }\n    }\n\n    return ''\n  }, [schema, valueProp])\n\n  return (\n    <Box padding={3}>\n      <Text size={1} weight=\"semibold\">\n        {schema.name}\n      </Text>\n      <Box marginTop={2}>\n        <Select\n          fontSize={[2, 2, 1]}\n          onChange={(event) => {\n            const optionKey = event.currentTarget.value\n            const optionValue = schema.options[optionKey as any]\n\n            setPropValue(schema.name, optionValue)\n          }}\n          padding={2}\n          radius={2}\n          value={String(value || '')}\n        >\n          {Object.entries(schema.options).map(([key]) => (\n            <option key={key} value={key}>\n              {key}\n            </option>\n          ))}\n        </Select>\n      </Box>\n    </Box>\n  )\n})\n","import {Box, Text, TextInput} from '@sanity/ui'\nimport {memo} from 'react'\n\nimport {StringPropSchema} from '../types'\nimport {useProps} from '../useProps'\n\n/** @internal */\nexport const StringProp = memo(function StringProp(props: {\n  schema: StringPropSchema\n  value?: string\n}): React.ReactNode {\n  const {schema, value} = props\n  const {setPropValue} = useProps()\n\n  return (\n    <Box padding={3}>\n      <Text size={1} weight=\"semibold\">\n        {schema.name}\n      </Text>\n      <Box marginTop={2}>\n        <TextInput\n          fontSize={[2, 2, 1]}\n          onChange={(event) => setPropValue(schema.name, event.currentTarget.value)}\n          padding={2}\n          value={value || ''}\n        />\n      </Box>\n    </Box>\n  )\n})\n","import {Box, Text, TextArea} from '@sanity/ui'\nimport {memo} from 'react'\n\nimport {TextPropSchema} from '../types'\nimport {useProps} from '../useProps'\n\n/** @internal */\nexport const TextProp = memo(function TextProp(props: {\n  schema: TextPropSchema\n  value?: string\n}): React.ReactNode {\n  const {schema, value} = props\n  const {setPropValue} = useProps()\n\n  return (\n    <Box padding={3}>\n      <Text size={1} weight=\"semibold\">\n        {schema.name}\n      </Text>\n      <Box marginTop={2}>\n        <TextArea\n          fontSize={[2, 2, 1]}\n          onChange={(event) => setPropValue(schema.name, event.currentTarget.value)}\n          rows={4}\n          value={value || ''}\n        />\n      </Box>\n    </Box>\n  )\n})\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {Box, Text} from '@sanity/ui'\n\nimport {PropSchema} from '../types'\nimport {BooleanProp} from './booleanProp'\nimport {NumberProp} from './numberProp'\nimport {SelectProp} from './selectProp'\nimport {StringProp} from './stringProp'\nimport {TextProp} from './textProp'\n\n/** @internal */\nexport function Prop(props: {schema: PropSchema; value: any}): React.ReactNode {\n  const {schema, value} = props\n\n  if (schema.type === 'boolean') {\n    return <BooleanProp schema={schema} value={value} />\n  }\n\n  if (schema.type === 'number') {\n    return <NumberProp schema={schema} value={value} />\n  }\n\n  if (schema.type === 'select') {\n    return <SelectProp schema={schema} value={value} />\n  }\n\n  if (schema.type === 'string') {\n    return <StringProp schema={schema} value={value} />\n  }\n\n  if (schema.type === 'text') {\n    return <TextProp schema={schema} value={value} />\n  }\n\n  return (\n    <Box padding={2}>\n      <Text size={1} weight=\"semibold\">\n        Unknown Prop type:{' '}\n        <code>\n          {(schema as any).name}: {(schema as any).type}\n        </code>\n      </Text>\n    </Box>\n  )\n}\n","import {Box, Text} from '@sanity/ui'\nimport {memo} from 'react'\n\nimport {Prop} from './components/prop'\nimport {useProps} from './useProps'\n\n/** @internal */\nexport const PropsInspector = memo(function PropsInspector(): React.ReactNode {\n  const {schemas, value} = useProps()\n\n  return (\n    <Box padding={2}>\n      {schemas.length === 0 && (\n        <Box padding={2}>\n          <Text muted size={[2, 2, 1]}>\n            No properties\n          </Text>\n        </Box>\n      )}\n\n      {schemas.length > 0 &&\n        schemas.map((schema, schemaIndex) => (\n          <Prop\n            key={schemaIndex}\n            schema={schema}\n            value={value[schema.name] === undefined ? schema.defaultValue : value[schema.name]}\n          />\n        ))}\n    </Box>\n  )\n})\n","import lodashIsEqual from 'lodash/isEqual'\n\n/** @internal */\nexport const isEqual = lodashIsEqual\n","import {ThemeColorSchemeKey} from '@sanity/ui'\nimport {createContext} from 'react'\n\nimport {WorkshopCollection, WorkshopPlugin, WorkshopScope, WorkshopStory} from './config'\nimport {Pubsub} from './lib/pubsub'\nimport {WorkshopMsg} from './types'\n\n/** @public */\nexport interface WorkshopContextValue<CustomMsg = never> {\n  plugins: WorkshopPlugin[]\n  broadcast: (msg: WorkshopMsg | CustomMsg) => void\n  channel: Pubsub<WorkshopMsg | CustomMsg>\n  collections: WorkshopCollection[]\n  frameReady: boolean\n  frameUrl: string\n  origin: 'frame' | 'main'\n  path: string\n  payload: Record<string, unknown>\n  scheme: ThemeColorSchemeKey\n  scope: WorkshopScope | null\n  scopes: WorkshopScope[]\n  story: WorkshopStory | null\n  title: string\n  viewport: string\n  zoom: number\n}\n\n/** @internal */\nexport const WorkshopContext = createContext<WorkshopContextValue | null>(null)\n","import {useContext} from 'react'\n\nimport {WorkshopContext, WorkshopContextValue} from './WorkshopContext'\n\n/** @public */\nexport function useWorkshop<CustomMsg = never>(): WorkshopContextValue<CustomMsg> {\n  const workshop = useContext(WorkshopContext)\n\n  if (!workshop) {\n    throw new Error('Workshop: missing context value')\n  }\n\n  return workshop as unknown as WorkshopContextValue<CustomMsg>\n}\n","import pako from 'pako'\n\nconst btoa =\n  typeof window === 'undefined'\n    ? (str: string) => Buffer.from(str, 'binary').toString('base64')\n    : window.btoa\n\nconst atob =\n  typeof window === 'undefined'\n    ? (str: string) => Buffer.from(str, 'base64').toString('binary')\n    : window.atob\n\nfunction uint8ArrayToBase64(uint8array: Uint8Array): string {\n  let str = ''\n\n  for (let i = 0, {length} = uint8array; i < length; i++) {\n    str += String.fromCharCode(uint8array[i])\n  }\n\n  return btoa(str)\n}\n\nfunction base64ToUint8Array(base64: string) {\n  const binStr = atob(base64)\n  const len = binStr.length\n  const bytes = new Uint8Array(len)\n\n  for (let i = 0; i < len; i++) {\n    bytes[i] = binStr.charCodeAt(i)\n  }\n\n  return bytes\n}\n\n/** @internal */\nexport function decode(input: string): string {\n  if (input.length === 0) return ''\n\n  const arr = base64ToUint8Array(input)\n\n  return pako.inflate(arr, {to: 'string'})\n}\n\n/** @internal */\nexport function encode(input: string): string {\n  if (input.length === 0) return ''\n\n  const arr = pako.deflate(input)\n\n  return uint8ArrayToBase64(arr)\n}\n","import {EMPTY_RECORD} from '../../constants'\nimport {decode, encode} from './lib/zlib'\n\n/** @internal */\nexport function encodeValue(val: Record<string, unknown>): string {\n  return encode(JSON.stringify(val))\n}\n\n/** @internal */\nexport function decodeValue(val: string): Record<string, unknown> {\n  try {\n    return JSON.parse(decode(val))\n  } catch (_) {\n    return EMPTY_RECORD\n  }\n}\n","import {WorkshopMsg} from '../../types'\nimport {PropsMsg} from './msg'\nimport {PropsState} from './types'\n\n/** @internal */\nexport function propsReducer(state: PropsState, msg: WorkshopMsg | PropsMsg): PropsState {\n  if (msg.type === 'workshop/props/setValue') {\n    if (state.value === msg.value) {\n      return state\n    }\n\n    return {\n      ...state,\n      value: msg.value,\n    }\n  }\n\n  if (msg.type === 'workshop/props/registerProp') {\n    const schemaIsRegistered = state.schemas.some((s) => s.name === msg.schema.name)\n\n    if (schemaIsRegistered) {\n      return state\n    }\n\n    return {\n      ...state,\n      schemas: state.schemas.concat([msg.schema]),\n    }\n  }\n\n  if (msg.type === 'workshop/props/setPropValue') {\n    if (state.value[msg.name] === msg.value) {\n      return state\n    }\n\n    return {\n      ...state,\n      value: {...state.value, [msg.name]: msg.value},\n    }\n  }\n\n  return state\n}\n","import {memo, useCallback, useEffect, useMemo, useRef, useState} from 'react'\n\nimport {EMPTY_ARRAY, EMPTY_RECORD} from '../../constants'\nimport {isEqual} from '../../lib/isEqual'\nimport {useWorkshop} from '../../useWorkshop'\nimport {decodeValue, encodeValue} from './helpers'\nimport {PropsMsg} from './msg'\nimport {PropsContext, PropsContextValue} from './PropsContext'\nimport {propsReducer} from './propsReducer'\nimport {PropSchema, PropsState} from './types'\n\n/** @internal */\nexport const PropsProvider = memo(function PropsProvider(props: {\n  children?: React.ReactNode\n}): React.ReactNode {\n  const {children} = props\n  const {channel, broadcast, payload} = useWorkshop<PropsMsg>()\n  const encodedValue = payload.value\n  const encodedValueRef = useRef(encodedValue)\n\n  const [{schemas, value}, setState] = useState<PropsState>(() => ({\n    schemas: EMPTY_ARRAY,\n    value: decodeValue(String(encodedValue)),\n  }))\n\n  const registerProp = useCallback(\n    (schema: PropSchema) => {\n      broadcast({type: 'workshop/props/registerProp', schema})\n    },\n    [broadcast],\n  )\n\n  const unregisterProp = useCallback(\n    (name: string) => {\n      broadcast({type: 'workshop/props/unregisterProp', name})\n    },\n    [broadcast],\n  )\n\n  const setPropValue = useCallback(\n    (name: string, _value: unknown) => {\n      broadcast({type: 'workshop/props/setPropValue', name, value: _value})\n    },\n    [broadcast],\n  )\n\n  const ctx: PropsContextValue = useMemo(\n    () => ({registerProp, schemas, setPropValue, unregisterProp, value}),\n    [registerProp, schemas, setPropValue, unregisterProp, value],\n  )\n\n  // Subscribe to global messages\n  useEffect(\n    () =>\n      channel.subscribe((msg) => {\n        setState((prevState) => {\n          const nextState =\n            msg.type === 'workshop/setPath'\n              ? {schemas: EMPTY_ARRAY, value: EMPTY_RECORD}\n              : propsReducer(prevState, msg)\n\n          if (isEqual(prevState, nextState)) {\n            return prevState\n          }\n\n          return nextState\n        })\n      }),\n    [channel],\n  )\n\n  useEffect(() => {\n    const nextEncodedValue = encodeValue(value)\n\n    if (encodedValueRef.current !== nextEncodedValue) {\n      encodedValueRef.current = nextEncodedValue\n\n      broadcast({\n        type: 'workshop/setPayloadValue',\n        key: 'value',\n        value: nextEncodedValue,\n      })\n    }\n  }, [broadcast, value])\n\n  useEffect(() => {\n    if (encodedValueRef.current === encodedValue) {\n      return\n    }\n\n    encodedValueRef.current = encodedValue\n\n    setState((prevState) => {\n      const nextValue = decodeValue(String(encodedValue)) || {}\n      if (isEqual(prevState.value, nextValue)) {\n        return prevState\n      }\n\n      return {\n        ...prevState,\n        value: nextValue,\n      }\n    })\n  }, [encodedValue])\n\n  return <PropsContext.Provider value={ctx}>{children}</PropsContext.Provider>\n})\n","import {useEffect} from 'react'\n\nimport {useProps} from '../useProps'\n\n/** @internal */\nexport function useBoolean(\n  name: string,\n  defaultValue?: boolean,\n  groupName = 'Props',\n): boolean | undefined {\n  const {registerProp, unregisterProp, value} = useProps()\n\n  useEffect(() => {\n    registerProp({\n      type: 'boolean',\n      groupName,\n      name,\n      defaultValue,\n    })\n\n    return () => unregisterProp(name)\n  }, [defaultValue, groupName, name, registerProp, unregisterProp])\n\n  return value[name] === undefined ? defaultValue : (value[name] as boolean)\n}\n","import {useEffect} from 'react'\n\nimport {useProps} from '../useProps'\n\n/** @internal */\nexport function useNumber(\n  name: string,\n  defaultValue?: number,\n  groupName = 'Props',\n): number | undefined {\n  const {registerProp, unregisterProp, value} = useProps()\n\n  useEffect(() => {\n    registerProp({\n      type: 'number',\n      groupName,\n      name,\n      defaultValue,\n    })\n\n    return () => unregisterProp(name)\n  }, [defaultValue, groupName, name, registerProp, unregisterProp])\n\n  return value[name] === undefined ? defaultValue : (value[name] as number)\n}\n","import {useEffect} from 'react'\n\nimport {SelectPropOptionsProp, SelectPropValue} from '../types'\nimport {useProps} from '../useProps'\n\n/** @internal */\nexport function useSelect<T extends SelectPropValue>(\n  name: string,\n  options: SelectPropOptionsProp<T>,\n  defaultValue?: T,\n  groupName = 'Props',\n): T | undefined {\n  const {registerProp, unregisterProp, value} = useProps()\n\n  useEffect(() => {\n    registerProp({\n      type: 'select',\n      groupName,\n      name,\n      options: options as SelectPropOptionsProp,\n      defaultValue,\n    })\n\n    return () => unregisterProp(name)\n  }, [defaultValue, groupName, name, options, registerProp, unregisterProp])\n\n  return value[name] === undefined ? defaultValue : (value[name] as T)\n}\n","import {useEffect} from 'react'\n\nimport {useProps} from '../useProps'\n\n/** @internal */\nexport function useString(\n  name: string,\n  defaultValue?: string,\n  groupName = 'Props',\n): string | undefined {\n  const {registerProp, unregisterProp, value} = useProps()\n\n  useEffect(() => {\n    registerProp({\n      type: 'string',\n      groupName,\n      name,\n      defaultValue,\n    })\n\n    return () => unregisterProp(name)\n  }, [defaultValue, groupName, name, registerProp, unregisterProp])\n\n  return value[name] === undefined ? defaultValue : (value[name] as string)\n}\n","import {useEffect} from 'react'\n\nimport {useProps} from '../useProps'\n\n/** @internal */\nexport function useText(\n  name: string,\n  defaultValue?: string,\n  groupName = 'Props',\n): string | undefined {\n  const {registerProp, unregisterProp, value} = useProps()\n\n  useEffect(() => {\n    registerProp({\n      type: 'text',\n      groupName,\n      name,\n      defaultValue,\n    })\n\n    return () => unregisterProp(name)\n  }, [defaultValue, groupName, name, registerProp, unregisterProp])\n\n  return value[name] === undefined ? defaultValue : (value[name] as string)\n}\n","export type {PropsContextValue} from './PropsContext'\n\nimport {WorkshopPlugin} from '../../config'\nimport {PropsInspector} from './PropsInspector'\nimport {PropsProvider} from './PropsProvider'\n\nexport * from './types'\n\n// export hooks\nexport * from './hooks'\nexport * from './useProps'\n\n/** @internal */\nexport function propsPlugin(): WorkshopPlugin {\n  return {\n    name: 'props',\n    title: 'Properties',\n    inspector: PropsInspector,\n    provider: PropsProvider,\n  }\n}\n","import {ThemeColorSchemeKey} from '@sanity/ui'\nimport {memo, useMemo} from 'react'\n\nimport {WorkshopConfig, WorkshopPlugin} from './config'\nimport {EMPTY_ARRAY, EMPTY_RECORD} from './constants'\nimport {resolveLocation} from './helpers'\nimport {Pubsub} from './lib/pubsub'\nimport {propsPlugin} from './plugins/props'\nimport {WorkshopMsg} from './types'\nimport {WorkshopContext} from './WorkshopContext'\n\n/** @internal */\nexport interface WorkshopProviderProps {\n  broadcast: (msg: WorkshopMsg) => void\n  children?: React.ReactNode\n  channel: Pubsub<WorkshopMsg>\n  config: WorkshopConfig\n  frameReady: boolean\n  origin: 'frame' | 'main'\n  path: string\n  payload: Record<string, unknown>\n  scheme: ThemeColorSchemeKey\n  viewport?: string\n  zoom?: number\n}\n\n/** @internal */\nexport const WorkshopProvider = memo(function WorkshopProvider(\n  props: WorkshopProviderProps,\n): React.ReactNode {\n  const {\n    broadcast,\n    children,\n    channel,\n    config,\n    frameReady,\n    origin,\n    path,\n    payload,\n    scheme,\n    viewport = 'auto',\n    zoom = 1,\n  } = props\n\n  const {\n    plugins: pluginsProp = EMPTY_ARRAY,\n    collections = EMPTY_ARRAY,\n    frameUrl = '/frame/',\n    scopes,\n    title = 'Workshop',\n  } = config\n\n  if (!payload) {\n    throw new Error('missing `payload` property')\n  }\n\n  const plugins: WorkshopPlugin[] = useMemo(() => [propsPlugin(), ...pluginsProp], [pluginsProp])\n  const {scope, story} = useMemo(() => resolveLocation(scopes, path), [path, scopes])\n\n  let wrappedChildren = children\n  for (const plugin of plugins) {\n    if (plugin.provider) {\n      const Provider = plugin.provider\n      wrappedChildren = (\n        <Provider options={plugin.options || EMPTY_RECORD}>{wrappedChildren}</Provider>\n      )\n    }\n  }\n\n  return (\n    <WorkshopContext.Provider\n      value={{\n        plugins,\n        broadcast,\n        channel,\n        collections,\n        frameReady,\n        frameUrl,\n        origin,\n        path,\n        payload,\n        scheme,\n        scope,\n        scopes,\n        story,\n        title,\n        viewport,\n        zoom,\n      }}\n    >\n      {wrappedChildren}\n    </WorkshopContext.Provider>\n  )\n})\n\nWorkshopProvider.displayName = 'Memo(WorkshopProvider)'\n","import {isEqual} from './lib/isEqual'\nimport {WorkshopMsg, WorkshopState} from './types'\n\n/** @internal */\nexport function workshopReducer(state: WorkshopState, msg: WorkshopMsg): WorkshopState {\n  if (msg.type === 'workshop/frameReady') {\n    return {...state, frameReady: true}\n  }\n\n  if (msg.type === 'workshop/setState') {\n    if (isEqual(state, msg.value)) {\n      return state\n    }\n\n    return msg.value\n  }\n\n  if (msg.type === 'workshop/setZoom') {\n    if (state.zoom === msg.value) return state\n\n    return {...state, zoom: msg.value}\n  }\n\n  if (msg.type === 'workshop/setViewport') {\n    if (state.viewport === msg.value) return state\n\n    return {...state, viewport: msg.value}\n  }\n\n  if (msg.type === 'workshop/toggleScheme') {\n    return {...state, scheme: state.scheme === 'light' ? 'dark' : 'light'}\n  }\n\n  if (msg.type === 'workshop/setScheme') {\n    if (state.scheme === msg.value) return state\n\n    return {...state, scheme: msg.value}\n  }\n\n  if (msg.type === 'workshop/setPath') {\n    if (state.path === msg.value) return state\n\n    return {...state, path: msg.value}\n  }\n\n  if (msg.type === 'workshop/setPayload') {\n    if (isEqual(state.payload, msg.value)) {\n      return state\n    }\n\n    return {...state, payload: msg.value}\n  }\n\n  if (msg.type === 'workshop/setPayloadValue') {\n    const payload = {...state.payload, [msg.key]: msg.value}\n\n    if (isEqual(state.payload, payload)) {\n      return state\n    }\n\n    return {...state, payload}\n  }\n\n  return state\n}\n","const ROOT_PATH = (() => {\n  // Wrap in try/catch to avoid throwing exception in environments that don’t have `process.env`.\n  try {\n    return process.env.ROOT_PATH\n  } catch (_) {\n    return undefined\n  }\n})()\n\nconst RE_URL = /http:\\/\\/([^:/\\s]+)(:[0-9]+)?/g\nconst RE_VITE_FS_PREFIX = /\\/@fs\\//g\nconst RE_VITE_FS_SUFFIX = /\\?([a-z]{1})=([0-9]+)/g\n\n/** @internal */\nexport function formatStack(stack: string): string {\n  let ret = decodeURIComponent(stack)\n\n  ret = stack.replace(RE_URL, '').replace(RE_VITE_FS_PREFIX, '/').replace(RE_VITE_FS_SUFFIX, '')\n\n  if (ROOT_PATH) return replaceRootPath(ret, ROOT_PATH + '/')\n\n  return ret\n}\n\nfunction replaceRootPath(str: string, rootPath: string) {\n  const re = new RegExp(rootPath.replace(/\\//g, '\\\\/'), 'g')\n\n  return str.replace(re, '')\n}\n","import {Box, Button, Card, Code, ErrorBoundary, Flex, Heading, Spinner, Stack} from '@sanity/ui'\nimport {createElement, memo, Suspense, useCallback, useState} from 'react'\n\nimport {WorkshopStory} from '../config'\nimport {useWorkshop} from '../useWorkshop'\nimport {formatStack} from './formatStack'\n\n/** @internal */\nexport const WorkshopCanvas = memo(function WorkshopCanvas(): React.ReactNode {\n  const {story} = useWorkshop()\n  const [state, setState] = useState<{error: Error | null; errorInfo: React.ErrorInfo | null}>({\n    error: null,\n    errorInfo: null,\n  })\n\n  const catchError = useCallback(\n    ({error, info: errorInfo}: {error: Error; info: React.ErrorInfo}) => {\n      setState({error, errorInfo})\n    },\n    [],\n  )\n\n  const handleRetry = useCallback(() => {\n    setState({error: null, errorInfo: null})\n  }, [])\n\n  if (!story) {\n    return <></>\n  }\n\n  if (state.error) {\n    return (\n      <Card as=\"main\" height=\"fill\" overflow=\"auto\" tone=\"critical\">\n        <ErrorScreen error={state.error} errorInfo={state.errorInfo} onRetry={handleRetry} />\n      </Card>\n    )\n  }\n\n  return (\n    <>\n      <h1 hidden>{story.title}</h1>\n\n      <Suspense fallback={<LoadingScreen story={story} />}>\n        <Card as=\"main\" height=\"fill\">\n          <ErrorBoundary onCatch={catchError}>{createElement(story.component)}</ErrorBoundary>\n        </Card>\n      </Suspense>\n    </>\n  )\n})\n\nconst LoadingScreen = memo(function LoadingScreen(props: {story: WorkshopStory}) {\n  const {story} = props\n\n  return (\n    <>\n      <h1 hidden>\n        Loading <em>{story.title}</em>…\n      </h1>\n\n      <Flex align=\"center\" as=\"main\" height=\"fill\" justify=\"center\">\n        <Spinner muted />\n      </Flex>\n    </>\n  )\n})\n\nconst ErrorScreen = memo(function ErrorScreen(props: {\n  error: Error\n  errorInfo: React.ErrorInfo | null\n  onRetry: () => void\n}) {\n  const {error, errorInfo, onRetry} = props\n\n  return (\n    <Box padding={4}>\n      <Stack space={4}>\n        <Heading as=\"h1\" size={[1, 1, 2]}>\n          {error.message}\n        </Heading>\n        <Box>\n          <Button onClick={onRetry} text=\"Retry\" />\n        </Box>\n        {error.stack && <Code size={1}>{formatStack(error.stack)}</Code>}\n        {errorInfo?.componentStack && (\n          <Code size={1}>{'Component stack:' + formatStack(errorInfo.componentStack)}</Code>\n        )}\n      </Stack>\n    </Box>\n  )\n})\n","/** @internal */\nexport function isArray(value: unknown): value is unknown[] {\n  return Array.isArray(value)\n}\n","/** @internal */\nexport function isRecord(value: unknown): value is Record<string, unknown> {\n  return Boolean(value) && typeof value === 'object' && !Array.isArray(value)\n}\n","import {isArray} from '../lib/isArray'\nimport {isRecord} from '../lib/isRecord'\nimport {Pubsub} from '../lib/pubsub'\nimport {WorkshopMsg} from '../types'\n\nexport interface WorkshopMainController {\n  message: Pubsub<WorkshopMsg>\n}\n\n/** @internal */\nexport function createMainController(): WorkshopMainController {\n  const _subscribers = new Set<(msg: WorkshopMsg) => void>()\n\n  let _msgQueue: WorkshopMsg[] = []\n  let _flushTimeout: NodeJS.Timeout | null = null\n\n  function _flush() {\n    if (_flushTimeout) {\n      clearInterval(_flushTimeout)\n    }\n\n    _flushTimeout = setTimeout(() => {\n      window.parent.postMessage(_msgQueue)\n      _msgQueue = []\n      _flushTimeout = null\n    }, 0)\n  }\n\n  function _handleMessage(event: MessageEvent<unknown>) {\n    const msgs = event.data\n\n    if (isArray(msgs)) {\n      for (const msg of msgs) {\n        if (isRecord(msg) && typeof msg.type === 'string' && msg.type.startsWith('workshop/')) {\n          for (const subscriber of _subscribers) {\n            subscriber(msg as unknown as WorkshopMsg)\n          }\n        }\n      }\n    }\n  }\n\n  function _mount() {\n    window.addEventListener('message', _handleMessage, false)\n  }\n\n  function _unmount() {\n    window.removeEventListener('message', _handleMessage, false)\n  }\n\n  return {\n    message: {\n      publish(msg: WorkshopMsg) {\n        _msgQueue.push(msg)\n        _flush()\n      },\n      subscribe(subscriber) {\n        _subscribers.add(subscriber)\n\n        if (_subscribers.size === 1) {\n          _mount()\n        }\n\n        return () => {\n          _subscribers.delete(subscriber)\n\n          if (_subscribers.size === 0) {\n            _unmount()\n          }\n        }\n      },\n    },\n  }\n}\n","import {\n  BoundaryElementProvider,\n  Card,\n  PortalProvider,\n  ThemeColorSchemeKey,\n  ToastProvider,\n} from '@sanity/ui'\nimport {memo, useCallback, useEffect, useMemo, useState} from 'react'\n\nimport {WorkshopConfig} from '../config'\nimport {createPubsub} from '../lib/pubsub'\nimport {qs} from '../lib/qs'\nimport {WorkshopMsg, WorkshopState} from '../types'\nimport {WorkshopProvider} from '../WorkshopProvider'\nimport {workshopReducer} from '../workshopReducer'\nimport {WorkshopCanvas} from './WorkshopCanvas'\nimport {createMainController} from './WorkshopMainController'\n\n/** @internal */\nexport interface WorkshopFrameProps {\n  config: WorkshopConfig\n  setScheme: (nextScheme: ThemeColorSchemeKey) => void\n}\n\nfunction getStateFromLocation(): WorkshopState {\n  const query = typeof window === 'undefined' ? {} : qs.parse(window.location.search.slice(1))\n  const {path = '/', scheme, viewport, zoom, ...payload} = query\n\n  return {\n    frameReady: false,\n    path,\n    payload,\n    scheme: typeof scheme === 'string' ? (scheme as ThemeColorSchemeKey) : 'light',\n    viewport: typeof viewport === 'string' ? viewport : 'auto',\n    zoom: typeof zoom === 'string' ? Number(zoom) : 1,\n  }\n}\n\n/** @internal */\nexport const WorkshopFrame = memo(function WorkshopFrame(\n  props: WorkshopFrameProps,\n): React.ReactNode {\n  const {config, setScheme} = props\n  const main = useMemo(() => createMainController(), [])\n  const channel = useMemo(() => createPubsub<WorkshopMsg>(), [])\n  const [boundaryElement, setBoundaryElement] = useState<HTMLDivElement | null>(null)\n  const [portalElement, setPortalElement] = useState<HTMLDivElement | null>(null)\n\n  // Publish messages to both frame+main\n  const broadcast = useCallback(\n    (msg: WorkshopMsg) => {\n      // Handle msg\n      channel.publish(msg)\n\n      // Pass message to main\n      main.message.publish(msg)\n    },\n    [channel, main],\n  )\n\n  const [{frameReady, path, payload, scheme, viewport, zoom}, setState] = useState<WorkshopState>(\n    () => getStateFromLocation(),\n  )\n\n  // Subscribe to global messages\n  useEffect(() => channel.subscribe((msg) => setState((s) => workshopReducer(s, msg))), [channel])\n\n  // Pipe messages from main to channel\n  useEffect(() => main.message.subscribe(channel.publish), [channel, main])\n\n  // Update scheme\n  useEffect(() => setScheme(scheme), [setScheme, scheme])\n\n  // Inform `main` that the frame is ready\n  useEffect(() => broadcast({type: 'workshop/frameReady'}), [broadcast])\n\n  return (\n    <ToastProvider>\n      <BoundaryElementProvider element={boundaryElement}>\n        <PortalProvider element={portalElement}>\n          <WorkshopProvider\n            broadcast={broadcast}\n            config={config}\n            channel={channel}\n            frameReady={frameReady}\n            origin=\"frame\"\n            path={path}\n            payload={payload}\n            scheme={scheme}\n            viewport={viewport}\n            zoom={zoom}\n          >\n            <Card height=\"fill\" ref={setBoundaryElement}>\n              <WorkshopCanvas />\n              <div data-portal=\"\" ref={setPortalElement} />\n            </Card>\n          </WorkshopProvider>\n        </PortalProvider>\n      </BoundaryElementProvider>\n    </ToastProvider>\n  )\n})\n","import {qs} from '../lib/qs'\nimport {WorkshopLocation} from '../types'\n\n/** @public */\nexport interface WorkshopLocationStore {\n  get: () => Omit<WorkshopLocation, 'type'>\n  push: (nextLocation: Omit<WorkshopLocation, 'type'>) => void\n  replace: (nextLocation: Omit<WorkshopLocation, 'type'>) => void\n  subscribe: (subscriber: (nextLocation: WorkshopLocation) => void) => () => void\n}\n\nfunction _buildLocationUrl(loc: Omit<WorkshopLocation, 'type'>): string {\n  const search = qs.stringify(loc.query || {})\n\n  return `${loc.path}${search ? `?${search}` : ''}`\n}\n\nfunction _getStateFromWindow(): Omit<WorkshopLocation, 'type'> {\n  return {\n    path: location.pathname,\n    query: qs.parse(location.search.substr(1)),\n  }\n}\n\n/** @internal */\nexport function createLocationStore(): WorkshopLocationStore {\n  const _subscribers = new Set<(nextLocation: WorkshopLocation) => void>()\n\n  function _handlePopState() {\n    _notifySubscribers({type: 'pop', ..._getStateFromWindow()})\n  }\n\n  function _notifySubscribers(loc: WorkshopLocation) {\n    for (const subscriber of _subscribers) {\n      subscriber(loc)\n    }\n  }\n\n  function _mount() {\n    window.addEventListener('popstate', _handlePopState)\n  }\n\n  function _unmount() {\n    window.removeEventListener('popstate', _handlePopState)\n  }\n\n  return {\n    get() {\n      return _getStateFromWindow()\n    },\n    push(nextLocation) {\n      window.history.pushState(null, document.title, _buildLocationUrl(nextLocation))\n      _notifySubscribers({type: 'push', ...nextLocation})\n    },\n    replace(nextLocation) {\n      window.history.replaceState(null, document.title, _buildLocationUrl(nextLocation))\n      _notifySubscribers({type: 'replace', ...nextLocation})\n    },\n    subscribe(subscribe: (nextLocation: WorkshopLocation) => void) {\n      _subscribers.add(subscribe)\n\n      if (_subscribers.size === 1) _mount()\n\n      return () => {\n        _subscribers.delete(subscribe)\n\n        if (_subscribers.size === 0) _unmount()\n      }\n    },\n  }\n}\n","import {createGlobalStyle} from 'styled-components'\n\nexport const GlobalStyle = createGlobalStyle`\n  @font-face {\n    font-family: 'Inter';\n    font-style: normal;\n    font-weight: 100 900;\n    font-display: swap;\n    src: url('https://rsms.me/inter/font-files/Inter-roman.var.woff2?v=3.19') format('woff2');\n    font-named-instance: 'Regular';\n  }\n\n  @font-face {\n    font-family: 'Inter';\n    font-style: italic;\n    font-weight: 100 900;\n    font-display: swap;\n    src: url('https://rsms.me/inter/font-files/Inter-italic.var.woff2?v=3.19') format('woff2');\n    font-named-instance: 'Italic';\n  }\n\n  body {\n    background-color: ${({theme}) => theme.sanity.color.base.bg};\n  }\n`\n","import {Card, Layer, Tab, TabList} from '@sanity/ui'\nimport {CSSProperties, memo, useCallback, useMemo} from 'react'\nimport styled from 'styled-components'\n\nimport {InspectorTab} from './types'\n\nconst MemoTab = memo(Tab)\n\nconst Root = styled(Card)`\n  line-height: 0;\n\n  @media screen and (max-width: ${({theme}) => theme.sanity.media[1] - 1}px) {\n    text-align: center;\n  }\n`\n\nexport const InspectorHeader = memo(function InspectorHeader(props: {\n  currentTabId: string | null\n  onTabChange: (id: string) => void\n  tabs: InspectorTab[]\n}) {\n  const {currentTabId, onTabChange, tabs} = props\n\n  const layerStyle: CSSProperties = useMemo(() => ({flex: 'none', position: 'sticky', top: 0}), [])\n\n  const children = useMemo(\n    () =>\n      tabs.map((tab) => (\n        <InspectorTabView\n          key={tab.id}\n          onTabChange={onTabChange}\n          selected={tab.id === currentTabId}\n          tab={tab}\n        />\n      )),\n    [currentTabId, onTabChange, tabs],\n  )\n\n  return (\n    <Layer style={layerStyle}>\n      <Root padding={2} shadow={1}>\n        <TabList space={1}>{children}</TabList>\n      </Root>\n    </Layer>\n  )\n})\n\nfunction InspectorTabView(props: {\n  onTabChange: (id: string) => void\n  selected: boolean\n  tab: InspectorTab\n}) {\n  const {onTabChange, selected, tab} = props\n\n  const handleClick = useCallback(() => {\n    onTabChange(tab.id)\n  }, [onTabChange, tab])\n\n  return (\n    <MemoTab\n      aria-controls={`${tab.id}-panel`}\n      fontSize={[2, 2, 1]}\n      id={tab.id}\n      label={tab.label}\n      onClick={handleClick}\n      selected={selected}\n      tone={tab.tone}\n    />\n  )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {Box, BoxDisplay, Card, Flex, TabPanel} from '@sanity/ui'\nimport {ElementType, memo, useState} from 'react'\nimport styled from 'styled-components'\n\nimport {EMPTY_RECORD} from '../constants'\nimport {useWorkshop} from '../useWorkshop'\nimport {InspectorHeader} from './InspectorHeader'\nimport {InspectorTab} from './types'\n\nconst Root = styled(Card)`\n  overflow: hidden;\n\n  @media screen and (min-width: ${({theme}) => theme.sanity.media[1]}px) {\n    border-left: 1px solid var(--card-border-color);\n    min-width: 180px;\n    max-width: 300px;\n    overflow: auto;\n  }\n`\n\nconst MemoRender = memo(function MemoRender(props: {component: ElementType; options: any}) {\n  const {component: Component, options} = props\n  return <Component options={options} />\n})\n\n/** @internal */\nexport const WorkshopInspector = memo(function WorkshopInspector(props: {\n  expanded: boolean\n}): React.ReactNode {\n  const {expanded} = props\n  const {plugins} = useWorkshop()\n\n  const tabs: InspectorTab[] = plugins\n    .filter((plugin) => plugin.inspector)\n    .map((plugin) => {\n      return {\n        id: plugin.name,\n        label: plugin.title,\n        tone: undefined,\n        plugin,\n      }\n    })\n\n  const [tabId, setTabId] = useState<string | null>(tabs.length > 0 ? tabs[0].id : null)\n  const currentTab = tabs.find((tab) => tab.id === tabId)\n  const showTabs = tabs.length > 1\n\n  const display: BoxDisplay[] = expanded ? ['block'] : ['none', 'none', 'block']\n\n  return (\n    <Root display={display} flex={1}>\n      <Flex direction=\"column\" height=\"fill\">\n        {showTabs && <InspectorHeader currentTabId={tabId} onTabChange={setTabId} tabs={tabs} />}\n\n        {showTabs &&\n          tabs.map((tab) => (\n            <TabPanel\n              aria-labelledby={`${tab.id}-tab`}\n              flex={1}\n              hidden={tab.id !== tabId}\n              id={`${tab.id}-panel`}\n              key={tab.id}\n              overflow=\"auto\"\n            >\n              {tab.plugin.inspector && (\n                <MemoRender\n                  component={tab.plugin.inspector}\n                  options={tab.plugin.options || EMPTY_RECORD}\n                />\n              )}\n            </TabPanel>\n          ))}\n\n        {!showTabs && currentTab?.plugin.inspector && (\n          <Box flex={1} overflow=\"auto\">\n            <MemoRender\n              component={currentTab.plugin.inspector}\n              options={currentTab.plugin.options || EMPTY_RECORD}\n            />\n          </Box>\n        )}\n      </Flex>\n    </Root>\n  )\n})\n","import lodashDebounce from 'lodash/debounce'\n\n/** @internal */\nexport const debounce = lodashDebounce\n","import {Breadcrumbs, Text} from '@sanity/ui'\nimport {memo, useCallback} from 'react'\n\nimport {useWorkshop} from '../useWorkshop'\n\n/** @internal */\nexport function NavbarBreadcrumbs(): React.ReactNode {\n  const {broadcast, scope, story, title} = useWorkshop()\n\n  const handleHomeClick = useCallback(\n    (event: React.MouseEvent) => {\n      event.preventDefault()\n      broadcast({type: 'workshop/setPath', value: '/'})\n    },\n    [broadcast],\n  )\n\n  return (\n    <NavbarBreadcrumbsView\n      onHomeClick={handleHomeClick}\n      scopeTitle={scope?.title}\n      storyTitle={story?.title}\n      title={title}\n    />\n  )\n}\n\nconst NavbarBreadcrumbsView = memo(function NavbarBreadcrumbsView(props: {\n  onHomeClick: (event: React.MouseEvent) => void\n  scopeTitle?: string\n  storyTitle?: string\n  title: string\n}) {\n  const {onHomeClick, scopeTitle, storyTitle, title} = props\n\n  return (\n    <Breadcrumbs\n      separator={\n        <Text muted size={[2, 2, 1]}>\n          /\n        </Text>\n      }\n      space={2}\n    >\n      <Text size={[2, 2, 1]} weight=\"bold\">\n        <a href=\"/\" onClick={onHomeClick} style={{color: 'inherit'}}>\n          {title}\n        </a>\n      </Text>\n\n      {scopeTitle && (\n        <Text align=\"center\" size={[2, 2, 1]}>\n          {scopeTitle}\n        </Text>\n      )}\n\n      {storyTitle && <Text size={[2, 2, 1]}>{storyTitle}</Text>}\n    </Breadcrumbs>\n  )\n})\n","import {LaunchIcon} from '@sanity/icons'\nimport {Button} from '@sanity/ui'\nimport {memo, useMemo} from 'react'\n\nimport {buildFrameUrl} from '../helpers'\nimport {useWorkshop} from '../useWorkshop'\n\n/** @internal */\nexport const OpenCanvasButton = memo(function OpenCanvasButton() {\n  const {frameUrl, path, payload, scheme, zoom, viewport} = useWorkshop()\n\n  const canvasUrl = useMemo(\n    () =>\n      path === '/'\n        ? undefined\n        : buildFrameUrl({baseUrl: frameUrl, path, payload, scheme, zoom, viewport}),\n    [frameUrl, path, payload, scheme, zoom, viewport],\n  )\n\n  return (\n    <Button\n      as={canvasUrl ? 'a' : 'button'}\n      disabled={!canvasUrl}\n      fontSize={1}\n      href={canvasUrl}\n      iconRight={LaunchIcon}\n      mode=\"ghost\"\n      padding={2}\n      rel=\"noopener noreferrer\"\n      target=\"_blank\"\n      text=\"Open story\"\n    />\n  )\n})\n","import {MoonIcon, SunIcon} from '@sanity/icons'\nimport {Button} from '@sanity/ui'\nimport {memo, useCallback} from 'react'\n\nimport {useWorkshop} from '../useWorkshop'\n\n/** @internal */\nexport function SchemeMenu(): React.ReactNode {\n  const {broadcast, scheme} = useWorkshop()\n\n  const handleToggleScheme = useCallback(() => {\n    broadcast({type: 'workshop/toggleScheme'})\n  }, [broadcast])\n\n  return <SchemeMenuView dark={scheme === 'dark'} onToggleScheme={handleToggleScheme} />\n}\n\nconst SchemeMenuView = memo(function SchemeMenuView(props: {\n  dark: boolean\n  onToggleScheme: () => void\n}) {\n  const {dark, onToggleScheme} = props\n\n  return (\n    <Button\n      fontSize={1}\n      icon={dark ? MoonIcon : SunIcon}\n      mode=\"bleed\"\n      onClick={onToggleScheme}\n      padding={2}\n    />\n  )\n})\n","import {SelectIcon} from '@sanity/icons'\nimport {Button, Menu, MenuButton, MenuButtonProps, MenuItem} from '@sanity/ui'\nimport {memo, useCallback} from 'react'\n\nimport {VIEWPORT_OPTIONS} from '../constants'\nimport {useWorkshop} from '../useWorkshop'\n\n/** @internal */\nexport const ViewportMenu = memo(function ViewportMenu() {\n  const {broadcast, story, viewport} = useWorkshop()\n\n  const setViewport = useCallback(\n    (value: string) => {\n      broadcast({type: 'workshop/setViewport', value})\n    },\n    [broadcast],\n  )\n\n  return <ViewportMenuView disabled={!story} setViewport={setViewport} viewport={viewport} />\n})\n\nconst POPOVER_PROPS: MenuButtonProps['popover'] = {\n  constrainSize: true,\n  placement: 'bottom',\n  portal: true,\n}\n\nconst ViewportMenuView = memo(function ViewportMenuView(props: {\n  disabled: boolean\n  setViewport: (v: string) => void\n  viewport: string\n}) {\n  const {disabled, setViewport, viewport} = props\n\n  return (\n    <MenuButton\n      button={\n        <Button\n          disabled={disabled}\n          fontSize={1}\n          iconRight={SelectIcon}\n          mode=\"ghost\"\n          padding={2}\n          text={VIEWPORT_OPTIONS.find((o) => o.name === viewport)?.title}\n        />\n      }\n      id=\"viewport-menu\"\n      menu={\n        <Menu>\n          {VIEWPORT_OPTIONS.map((option) => (\n            <MenuItem\n              fontSize={1}\n              key={option.name}\n              onClick={() => setViewport(option.name)}\n              padding={2}\n              selected={option.name === viewport}\n              text={option.title}\n            />\n          ))}\n        </Menu>\n      }\n      popover={POPOVER_PROPS}\n    />\n  )\n})\n","import {SelectIcon} from '@sanity/icons'\nimport {Button, Menu, MenuButton, MenuButtonProps, MenuItem} from '@sanity/ui'\nimport {memo, useCallback} from 'react'\n\nimport {ZOOM_OPTIONS} from '../constants'\nimport {useWorkshop} from '../useWorkshop'\n\n/** @internal */\nexport function ZoomMenu(): React.ReactNode {\n  const {broadcast, story, zoom} = useWorkshop()\n\n  const setZoom = useCallback(\n    (value: number) => broadcast({type: 'workshop/setZoom', value}),\n    [broadcast],\n  )\n\n  return <ZoomMenuView disabled={!story} setZoom={setZoom} zoom={zoom} />\n}\n\nconst POPOVER_PROPS: MenuButtonProps['popover'] = {\n  constrainSize: true,\n  placement: 'bottom',\n  portal: true,\n}\n\nconst ZoomMenuView = memo(function ZoomMenuView(props: {\n  disabled: boolean\n  setZoom: (z: number) => void\n  zoom: number\n}) {\n  const {disabled, setZoom, zoom} = props\n\n  return (\n    <MenuButton\n      button={\n        <Button\n          disabled={disabled}\n          fontSize={1}\n          iconRight={SelectIcon}\n          mode=\"ghost\"\n          padding={2}\n          text={ZOOM_OPTIONS.find((o) => o.value === zoom)?.title}\n        />\n      }\n      id=\"zoom-menu\"\n      menu={\n        <Menu>\n          {ZOOM_OPTIONS.map((option) => (\n            <MenuItem\n              fontSize={1}\n              key={option.value}\n              onClick={() => setZoom(option.value)}\n              padding={2}\n              selected={option.value === zoom}\n              text={option.title}\n            />\n          ))}\n        </Menu>\n      }\n      popover={POPOVER_PROPS}\n    />\n  )\n})\n","import {ControlsIcon, MenuIcon} from '@sanity/icons'\nimport {Box, Button, Card, Flex, Inline, Text, useMediaIndex} from '@sanity/ui'\nimport {memo} from 'react'\n\nimport {useWorkshop} from '../useWorkshop'\nimport {NavbarBreadcrumbs} from './NavbarBreadcrumbs'\nimport {OpenCanvasButton} from './OpenCanvasButton'\nimport {SchemeMenu} from './SchemeMenu'\nimport {ViewportMenu} from './ViewportMenu'\nimport {ZoomMenu} from './ZoomMenu'\n\n/** @internal */\nexport const WorkshopNavbar = memo(function WorkshopNavbar(props: {\n  inspectorExpanded: boolean\n  navigatorExpanded: boolean\n  onInspectorToggle: () => void\n  onNavigatorToggle: () => void\n}): React.ReactNode {\n  const {inspectorExpanded, navigatorExpanded, onInspectorToggle, onNavigatorToggle} = props\n  const mediaIndex = useMediaIndex()\n  const {story, title} = useWorkshop()\n\n  return (\n    <Card borderBottom flex=\"none\" padding={2} style={{lineHeight: 0}}>\n      <Flex gap={1}>\n        <Box display={['block', 'block', 'none']} flex=\"none\">\n          <Button\n            aria-label=\"Open navigator\"\n            fontSize={[2, 2, 1]}\n            icon={MenuIcon}\n            mode=\"bleed\"\n            onClick={onNavigatorToggle}\n            padding={2}\n            selected={navigatorExpanded}\n          />\n        </Box>\n\n        <Flex\n          flex={1}\n          justify={['center', 'center', 'flex-start']}\n          padding={2}\n          sizing=\"border\"\n          style={{minWidth: 250}}\n        >\n          {mediaIndex < 2 && <Text weight=\"bold\">{story?.title || title}</Text>}\n          {mediaIndex >= 2 && <NavbarBreadcrumbs />}\n        </Flex>\n\n        <Box display={['block', 'block', 'none']} flex=\"none\">\n          <Button\n            aria-label=\"Open inspector\"\n            fontSize={[2, 2, 1]}\n            icon={ControlsIcon}\n            mode=\"bleed\"\n            onClick={onInspectorToggle}\n            padding={2}\n            selected={inspectorExpanded}\n          />\n        </Box>\n\n        <Box display={['none', 'none', 'block']} flex=\"none\">\n          <Inline space={1}>\n            <OpenCanvasButton />\n            <ViewportMenu />\n            <ZoomMenu />\n            <SchemeMenu />\n          </Inline>\n        </Box>\n      </Flex>\n    </Card>\n  )\n})\n","import {set} from 'segmented-property'\n\nimport {WorkshopScope} from '../config'\nimport {MenuCollection, MenuList, MenuScope, MenuStory} from './types'\n\n/** @internal */\nexport function parseMenuNode(\n  collections: MenuCollection[],\n  node: Record<string, unknown>,\n  name?: string,\n): Array<MenuList | MenuScope | MenuStory> {\n  if (node.__scope__) {\n    const scope = node.__scope__ as WorkshopScope\n\n    if (scope.name === '@@root@@') {\n      return scope.stories.map((s) => ({type: 'story', ...s}))\n    }\n\n    return [\n      {\n        type: 'scope',\n        name: scope.name || '@@root@@',\n        title: scope.title || '(root)',\n        scope,\n      },\n    ]\n  }\n\n  const coll = collections.find((c) => c.name === name)\n\n  const entries = Object.entries(node).filter(([key]) => key !== '__scope__')\n\n  const items = entries.flatMap(([key, child]) =>\n    parseMenuNode(coll?.children || [], child as Record<string, unknown>, key),\n  )\n\n  return [\n    {\n      type: 'list',\n      name,\n      title: coll?.title || name,\n      items,\n    },\n  ]\n}\n\n/** @internal */\nexport function buildMenu(\n  collections: MenuCollection[],\n  scopes: WorkshopScope[],\n): MenuList | MenuScope {\n  const scopeMap: {[key: string]: WorkshopScope} = {}\n\n  // Merge scopes\n  for (const scope of scopes) {\n    const scopeName = scope.name || '@@root@@'\n\n    const prevScope: WorkshopScope = scopeMap[scopeName] || {\n      name: scopeName,\n      title: scope.title,\n      stories: [],\n    }\n\n    const mergedScope: WorkshopScope = {\n      ...prevScope,\n      name: scopeName,\n      stories: prevScope.stories.concat(scope.stories),\n    }\n\n    scopeMap[scopeName] = mergedScope\n  }\n\n  let tree = {}\n\n  for (const scope of Object.values(scopeMap)) {\n    tree = set(tree, scope.name || '@@root@@', {__scope__: scope})\n  }\n\n  const rootNode: MenuList = {\n    type: 'list',\n    name: '@@root@@',\n    items: [],\n  }\n\n  for (const [key, entry] of Object.entries(tree)) {\n    rootNode.items.push(...parseMenuNode(collections, entry as Record<string, unknown>, key))\n  }\n\n  return rootNode\n}\n","import {Card, Stack, Text} from '@sanity/ui'\nimport {memo} from 'react'\n\nimport {WorkshopScope, WorkshopStory} from '../config'\n\n/** @internal */\nexport const SearchResults = memo(function SearchResults(props: {\n  matches: {scope: WorkshopScope; story: WorkshopStory}[]\n  onStoryClick: (event: React.MouseEvent<HTMLDivElement>) => void\n}) {\n  const {matches, onStoryClick} = props\n\n  return (\n    <Stack space={1}>\n      {matches.map(({scope, story}) => (\n        <Card\n          as=\"a\"\n          data-path={`/${scope.name}/${story.name}`}\n          href={`/${scope.name}/${story.name}`}\n          key={`${scope.name}/${story.name}`}\n          onClick={onStoryClick}\n          padding={2}\n          radius={2}\n        >\n          <Text size={1} textOverflow=\"ellipsis\">\n            {[scope.title || '', story.title].filter(Boolean).join(' / ')}\n          </Text>\n        </Card>\n      ))}\n    </Stack>\n  )\n})\n","import {Tree, TreeItem} from '@sanity/ui'\nimport {memo, MouseEvent, useCallback, useMemo} from 'react'\n\nimport {WorkshopStory} from '../config'\nimport {useWorkshop} from '../useWorkshop'\nimport {MenuList, MenuScope, MenuStory} from './types'\n\n/** @internal */\nexport const StoryTree = memo(function StoryTree(props: {\n  items: Array<MenuList | MenuScope | MenuStory>\n}) {\n  const {items} = props\n\n  return (\n    <Tree space={1}>\n      <MenuItems items={items} />\n    </Tree>\n  )\n})\n\nconst MenuItems = memo(function MenuItems(props: {\n  basePath?: string\n  items: Array<MenuList | MenuScope | MenuStory>\n}) {\n  const {basePath = '', items} = props\n  const {broadcast, path: workshopPath, scope: currentScope, story: currentStory} = useWorkshop()\n\n  const handleStoryClick = useCallback(\n    (event: MouseEvent<HTMLLIElement>) => {\n      event.preventDefault()\n\n      const target = event.currentTarget\n      const targetPath = target.getAttribute('data-path')\n\n      if (targetPath) {\n        broadcast({type: 'workshop/setPath', value: targetPath})\n      }\n    },\n    [broadcast],\n  )\n\n  return useMemo(() => {\n    if (items.length === 0) {\n      return null\n    }\n\n    return (\n      <>\n        {items.map((item, itemIndex) => {\n          if (item.type === 'list') {\n            const path = `${basePath}/${item.name}`\n\n            return (\n              <MemoList\n                expanded={workshopPath.startsWith(path + '/')}\n                key={item.name || itemIndex}\n                item={item}\n                path={path}\n              />\n            )\n          }\n\n          if (item.type === 'story') {\n            return (\n              <TreeItem\n                data-path={`/${item.name || ''}`}\n                fontSize={[2, 2, 1]}\n                href={`/${item.name || ''}`}\n                key={item.name}\n                onClick={handleStoryClick}\n                padding={2}\n                selected={currentStory?.component === item.component}\n                text={item.title}\n              />\n            )\n          }\n\n          if (item.type === 'scope') {\n            return (\n              <MemoScope\n                currentStory={currentStory}\n                expanded={item.scope === currentScope}\n                item={item}\n                key={item.name}\n                onStoryClick={handleStoryClick}\n              />\n            )\n          }\n\n          return <TreeItem key={itemIndex} text=\"unknown\" />\n        })}\n      </>\n    )\n  }, [basePath, currentScope, currentStory, handleStoryClick, items, workshopPath])\n})\n\nconst MemoList = memo(function MemoList(props: {expanded: boolean; item: MenuList; path: string}) {\n  const {expanded, item, path} = props\n\n  const children = useMemo(() => <MenuItems basePath={path} items={item.items} />, [item, path])\n\n  return (\n    <TreeItem\n      expanded={expanded}\n      fontSize={[2, 2, 1]}\n      padding={2}\n      text={item.title}\n      weight=\"semibold\"\n    >\n      {children}\n    </TreeItem>\n  )\n})\n\nconst MemoScope = memo(function MemoScope(props: {\n  currentStory: WorkshopStory | null\n  expanded: boolean\n  item: MenuScope\n  onStoryClick: (event: MouseEvent<HTMLLIElement>) => void\n}) {\n  const {currentStory, expanded, item, onStoryClick} = props\n\n  const children = useMemo(\n    () =>\n      item.scope.stories.map((story) => (\n        <TreeItem\n          data-path={`/${item.scope.name}/${story.name}`}\n          fontSize={[2, 2, 1]}\n          href={`/${item.scope.name}/${story.name}`}\n          key={story.name}\n          onClick={onStoryClick}\n          padding={2}\n          selected={currentStory === story}\n          text={story.title}\n        />\n      )),\n    [currentStory, item, onStoryClick],\n  )\n\n  return (\n    <TreeItem\n      expanded={expanded}\n      fontSize={[2, 2, 1]}\n      padding={2}\n      text={item.title}\n      weight=\"semibold\"\n    >\n      {children}\n    </TreeItem>\n  )\n})\n","import {SearchIcon} from '@sanity/icons'\nimport {Box, BoxDisplay, Card, Flex, Layer, TextInput} from '@sanity/ui'\nimport {memo, useCallback, useMemo, useState} from 'react'\nimport styled from 'styled-components'\n\nimport {WorkshopScope, WorkshopStory} from '../config'\nimport {EMPTY_ARRAY} from '../constants'\nimport {useWorkshop} from '../useWorkshop'\nimport {buildMenu} from './helpers'\nimport {SearchResults} from './SearchResults'\nimport {StoryTree} from './StoryTree'\nimport {MenuCollection, MenuList, MenuScope} from './types'\n\nconst Root = styled(Card)`\n  overflow: hidden;\n\n  @media screen and (min-width: ${({theme}) => theme.sanity.media[1]}px) {\n    border-right: 1px solid var(--card-border-color);\n    min-width: 180px;\n    max-width: 300px;\n    overflow: auto;\n  }\n`\n\nconst flexNoneStyle: React.CSSProperties = {flex: 'none'}\nconst lineHeightNoneStyle: React.CSSProperties = {lineHeight: 0}\nconst textInputFontSize = [2, 2, 1]\n\n/** @internal */\nexport const WorkshopNavigator = memo(function WorkshopNavigator(props: {\n  collections?: MenuCollection[]\n  expanded: boolean\n}): React.ReactNode {\n  const {collections = [], expanded} = props\n  const {broadcast, scopes} = useWorkshop()\n  const menu = useMemo(() => buildMenu(collections, scopes), [collections, scopes])\n  const [query, setQuery] = useState('')\n\n  const matches = useMemo(() => {\n    if (!query) return EMPTY_ARRAY\n\n    const q = query.toLowerCase()\n\n    const ret: {scope: WorkshopScope; story: WorkshopStory}[] = []\n\n    for (const scope of scopes) {\n      for (const story of scope.stories) {\n        if (scope.title?.toLowerCase().includes(q) || story.title.toLowerCase().includes(q)) {\n          ret.push({scope, story})\n        }\n      }\n    }\n\n    return ret\n  }, [query, scopes])\n\n  const handleSearchQueryChange = useCallback(\n    (event: React.ChangeEvent<HTMLInputElement>) => setQuery(event.currentTarget.value),\n    [],\n  )\n\n  const handleSearchQueryClear = useCallback(() => setQuery(''), [])\n\n  const handleStoryClick = useCallback(\n    (event: React.MouseEvent<HTMLDivElement>) => {\n      event.preventDefault()\n\n      const target = event.currentTarget\n      const targetPath = target.getAttribute('data-path')\n\n      if (targetPath) {\n        broadcast({type: 'workshop/setPath', value: targetPath})\n\n        setQuery('')\n      }\n    },\n    [broadcast],\n  )\n\n  return (\n    <NavigatorView\n      expanded={expanded}\n      matches={matches}\n      menu={menu}\n      onSearchQueryChange={handleSearchQueryChange}\n      onSearchQueryClear={handleSearchQueryClear}\n      onStoryClick={handleStoryClick}\n      query={query}\n    />\n  )\n})\n\nconst NavigatorView = memo(function NavigatorView(props: {\n  expanded: boolean\n  matches: {scope: WorkshopScope; story: WorkshopStory}[]\n  menu: MenuScope | MenuList\n  onSearchQueryChange: (event: React.ChangeEvent<HTMLInputElement>) => void\n  onSearchQueryClear: () => void\n  onStoryClick: (event: React.MouseEvent<HTMLDivElement>) => void\n  query: string\n}) {\n  const {expanded, matches, menu, onSearchQueryChange, onSearchQueryClear, onStoryClick, query} =\n    props\n\n  const display: BoxDisplay[] = useMemo(\n    () => (expanded ? ['block'] : ['none', 'none', 'block']),\n    [expanded],\n  )\n\n  return (\n    <Root display={display} flex={1}>\n      <Flex direction=\"column\" height=\"fill\">\n        <Layer style={flexNoneStyle}>\n          <Card padding={2} shadow={1} style={lineHeightNoneStyle}>\n            <TextInput\n              border={false}\n              clearButton={Boolean(query)}\n              fontSize={textInputFontSize}\n              icon={SearchIcon}\n              onChange={onSearchQueryChange}\n              onClear={onSearchQueryClear}\n              padding={2}\n              placeholder=\"Stories\"\n              radius={2}\n              space={2}\n              value={query}\n            />\n          </Card>\n        </Layer>\n\n        <Card flex={1} overflow=\"auto\">\n          {query && matches.length > 0 && (\n            <Box padding={2}>\n              <SearchResults matches={matches} onStoryClick={onStoryClick} />\n            </Box>\n          )}\n\n          {!query && menu.type === 'list' && (\n            <Box padding={2}>\n              <StoryTree items={menu.items} />\n            </Box>\n          )}\n        </Card>\n      </Flex>\n    </Root>\n  )\n})\n","import {BoxDisplay, Card, Container, Flex, Heading, Spinner, Stack, Text} from '@sanity/ui'\nimport {memo, useMemo, useState} from 'react'\nimport styled from 'styled-components'\n\nimport {VIEWPORT_OPTIONS} from './constants'\nimport {buildFrameUrl} from './helpers'\nimport {useWorkshop} from './useWorkshop'\n\nconst Frame = styled.iframe`\n  display: block;\n  border: 0;\n  height: 100%;\n  width: 100%;\n`\n\n/** @internal */\nexport const WorkshopCanvas = memo(function WorkshopCanvas(props: {\n  frameRef: React.Ref<HTMLIFrameElement>\n  hidden: boolean\n}): React.ReactNode {\n  const {frameRef, hidden} = props\n  const {frameReady, frameUrl, path, payload, scheme, title, viewport, zoom} = useWorkshop()\n  const viewportOption = VIEWPORT_OPTIONS.find((o) => o.name === viewport) || VIEWPORT_OPTIONS[0]\n  const viewportW = viewportOption?.rect.width\n  const viewportH = viewportOption?.rect.height\n\n  const [initialFrameUrl] = useState(() =>\n    buildFrameUrl({baseUrl: frameUrl, path, payload, scheme, viewport, zoom}),\n  )\n\n  const containerStyle = useMemo(\n    () => ({\n      maxWidth: viewportW === 'auto' ? undefined : `${(viewportW || 1) * zoom}px`,\n      maxHeight: viewportH ? `${(viewportH || 1) * zoom}px` : undefined,\n    }),\n    [viewportW, viewportH, zoom],\n  )\n\n  const display: BoxDisplay = useMemo(() => (hidden ? 'none' : 'block'), [hidden])\n\n  const frameStyle = useMemo(\n    () => ({\n      transform: `scale(${zoom})`,\n      transformOrigin: '0 0',\n      width: `${100 / zoom}%`,\n      height: `${100 / zoom}%`,\n    }),\n    [zoom],\n  )\n\n  return (\n    <Card display={display} flex={1} overflow=\"hidden\" tone=\"transparent\">\n      <Flex align=\"center\" height=\"fill\" justify=\"center\" sizing=\"border\">\n        {path === '/' && (\n          <Container width={0}>\n            <Stack padding={4} space={4}>\n              <Heading align=\"center\">{title}</Heading>\n              <Text align=\"center\" muted>\n                Browse workshop stories in the navigator to the left.\n              </Text>\n            </Stack>\n          </Container>\n        )}\n\n        {!frameReady && path !== '/' && <Spinner muted />}\n\n        <Container\n          height=\"fill\"\n          hidden={!frameReady || path === '/'}\n          style={containerStyle}\n          width=\"auto\"\n        >\n          <Card height=\"fill\" shadow={1}>\n            <Frame ref={frameRef} src={initialFrameUrl} style={frameStyle} />\n          </Card>\n        </Container>\n      </Flex>\n    </Card>\n  )\n})\n","import {isArray} from './lib/isArray'\nimport {isRecord} from './lib/isRecord'\nimport {Pubsub} from './lib/pubsub'\nimport {WorkshopMsg} from './types'\n\n/** @internal */\nexport interface WorkshopFrameController {\n  message: Pubsub<WorkshopMsg>\n  setElement: (el: HTMLIFrameElement | null) => void\n}\n\n/** @internal */\nexport function createWorkshopFrameController(): WorkshopFrameController {\n  const _subscribers = new Set<(msg: WorkshopMsg) => void>()\n\n  let _frameElement: HTMLIFrameElement | null = null\n  let _msgQueue: WorkshopMsg[] = []\n  let _flushTimeout: NodeJS.Timeout | null = null\n\n  function _flush() {\n    if (_flushTimeout) {\n      clearInterval(_flushTimeout)\n    }\n\n    _flushTimeout = setTimeout(() => {\n      _frameElement?.contentWindow?.postMessage(_msgQueue, window.location.origin)\n      _msgQueue = []\n      _flushTimeout = null\n    }, 0)\n  }\n\n  function _handleMessage(event: MessageEvent<unknown>) {\n    const msgs = event.data\n\n    if (isArray(msgs)) {\n      for (const msg of msgs) {\n        if (isRecord(msg) && typeof msg.type === 'string' && msg.type.startsWith('workshop/')) {\n          for (const subscriber of _subscribers) {\n            subscriber(msg as unknown as WorkshopMsg)\n          }\n        }\n      }\n    }\n  }\n\n  function _mount() {\n    if (_frameElement?.contentWindow) {\n      window.addEventListener('message', _handleMessage)\n    }\n  }\n\n  function _unmount(el: HTMLIFrameElement) {\n    if (el?.contentWindow) {\n      window.removeEventListener('message', _handleMessage)\n    }\n  }\n\n  return {\n    message: {\n      publish(msg) {\n        _msgQueue.push(msg)\n        _flush()\n      },\n      subscribe(subscriber) {\n        _subscribers.add(subscriber)\n\n        return () => {\n          _subscribers.delete(subscriber)\n        }\n      },\n    },\n    setElement(el) {\n      const prevFrameElement = _frameElement\n\n      _frameElement = el\n\n      if (el) {\n        _mount()\n      } else if (prevFrameElement) {\n        _unmount(prevFrameElement)\n      }\n    },\n  }\n}\n","import {\n  BoundaryElementProvider,\n  Flex,\n  PortalProvider,\n  ThemeColorSchemeKey,\n  ToastProvider,\n  useMediaIndex,\n} from '@sanity/ui'\nimport {memo, useCallback, useEffect, useMemo, useRef, useState} from 'react'\n\nimport {WorkshopConfig} from './config'\nimport {DEFAULT_VIEWPORT_VALUE, DEFAULT_ZOOM_VALUE} from './constants'\nimport {WorkshopInspector} from './inspector'\nimport {debounce} from './lib/debounce'\nimport {isEqual} from './lib/isEqual'\nimport {createPubsub} from './lib/pubsub'\nimport {WorkshopLocationStore} from './location'\nimport {WorkshopNavbar} from './navbar'\nimport {WorkshopNavigator} from './navigator'\nimport {WorkshopLocation, WorkshopMsg, WorkshopQuery, WorkshopState} from './types'\nimport {WorkshopCanvas} from './WorkshopCanvas'\nimport {createWorkshopFrameController} from './WorkshopFrameController'\nimport {WorkshopProvider} from './WorkshopProvider'\nimport {workshopReducer} from './workshopReducer'\n\n/** @public */\nexport interface WorkshopProps {\n  config: WorkshopConfig\n  locationStore: WorkshopLocationStore\n  onSchemeChange: (nextScheme: ThemeColorSchemeKey) => void\n  scheme?: ThemeColorSchemeKey\n}\n\nfunction getStateFromLocation(\n  loc: Omit<WorkshopLocation, 'type'>,\n  schemeProp?: ThemeColorSchemeKey,\n  frameReady?: boolean,\n): WorkshopState {\n  const path = loc.path\n  const query = loc.query || {}\n  const {scheme, viewport, zoom, ...payload} = query\n\n  return {\n    frameReady: frameReady || false,\n    path,\n    payload,\n    scheme: schemeProp || (typeof scheme === 'string' ? (scheme as ThemeColorSchemeKey) : 'light'),\n    viewport: typeof viewport === 'string' ? viewport : 'auto',\n    zoom: typeof zoom === 'number' ? zoom : 1,\n  }\n}\n\nfunction getQueryFromState(state: WorkshopState, withPayload = true): WorkshopQuery {\n  const {payload, scheme, viewport, zoom} = state\n\n  const query: WorkshopQuery = {scheme}\n\n  if (viewport && viewport !== DEFAULT_VIEWPORT_VALUE) {\n    query.viewport = viewport\n  }\n\n  if (zoom && zoom !== DEFAULT_ZOOM_VALUE) {\n    query.zoom = zoom\n  }\n\n  if (withPayload) {\n    for (const [key, val] of Object.entries(payload)) {\n      if (['schema', 'viewport', 'zoom'].includes(key)) {\n        // eslint-disable-next-line no-console\n        console.warn(\n          `Workshop: the payload cannot contain a property named \"${key}\" (protected name)`,\n        )\n      } else {\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        query[key] = val as any\n      }\n    }\n  }\n\n  return query\n}\n\n/** @public */\nexport const Workshop = memo(function Workshop(props: WorkshopProps): React.ReactNode {\n  const {config, locationStore, onSchemeChange, scheme: schemeProp} = props\n  const withNavbar = config.features?.navbar ?? true\n  const channel = useMemo(() => createPubsub<WorkshopMsg>(), [])\n  const frame = useMemo(() => createWorkshopFrameController(), [])\n  const [boundaryElement, setBoundaryElement] = useState<HTMLDivElement | null>(null)\n  const [portalElement, setPortalElement] = useState<HTMLDivElement | null>(null)\n  const [{frameReady, path, payload, scheme, viewport, zoom}, setState] = useState<WorkshopState>(\n    () => getStateFromLocation(locationStore.get(), schemeProp),\n  )\n  const mediaIndex = useMediaIndex()\n  const [navigatorExpanded, setNavigatorExpanded] = useState(false)\n  const [inspectorExpanded, setInspectorExpanded] = useState(false)\n  const frameReadyRef = useRef(frameReady)\n\n  const schemeRef = useRef(scheme)\n  const pathRef = useRef(path)\n  const queryRef = useRef<WorkshopQuery>({scheme, viewport, zoom, ...payload})\n\n  const broadcast = useCallback(\n    (msg: WorkshopMsg) => {\n      // Handle msg\n      channel.publish(msg)\n\n      // Pass message to frame\n      frame.message.publish(msg)\n    },\n    [channel, frame],\n  )\n\n  const _pushLocation = useMemo(\n    () => debounce((loc: Omit<WorkshopLocation, 'type'>) => locationStore.push(loc), 150),\n    [locationStore],\n  )\n\n  const _replaceLocation = useMemo(\n    () => debounce((loc: Omit<WorkshopLocation, 'type'>) => locationStore.replace(loc), 150),\n    [locationStore],\n  )\n\n  const handleNavigatorToggle = useCallback(() => {\n    setNavigatorExpanded((v) => !v)\n    setInspectorExpanded(false)\n  }, [])\n\n  const handleInspectorToggle = useCallback(() => {\n    setNavigatorExpanded(false)\n    setInspectorExpanded((v) => !v)\n  }, [])\n\n  const mediaIndexRef = useRef(mediaIndex)\n\n  useEffect(() => {\n    const prevMediaIndex = mediaIndexRef.current\n\n    if (prevMediaIndex < 2 && mediaIndex >= 2) {\n      setNavigatorExpanded(false)\n      setInspectorExpanded(false)\n    }\n\n    mediaIndexRef.current = mediaIndex\n  }, [mediaIndex])\n\n  useEffect(() => {\n    setNavigatorExpanded(false)\n  }, [path])\n\n  // Cancel debounced functions\n  useEffect(() => () => _pushLocation.cancel(), [_pushLocation])\n  useEffect(() => () => _replaceLocation.cancel(), [_replaceLocation])\n\n  // Subscribe to global message channel\n  useEffect(\n    () =>\n      channel.subscribe((msg) => {\n        // Update state\n        setState((prevState) => {\n          const nextState = workshopReducer(prevState, msg)\n          const changed = !isEqual(prevState, nextState)\n\n          if (changed) {\n            // Update URL location\n            if (msg.type === 'workshop/setPath') {\n              if (pathRef.current !== nextState.path) {\n                pathRef.current = nextState.path\n\n                // query without payload\n                const nextQuery = getQueryFromState(nextState, false)\n\n                _pushLocation({path: nextState.path, query: nextQuery})\n              }\n            } else if (msg.type !== 'workshop/setState') {\n              // query with payload\n              const nextQuery = getQueryFromState(nextState)\n\n              if (!isEqual(queryRef.current, nextQuery)) {\n                queryRef.current = nextQuery\n\n                _replaceLocation({path: nextState.path, query: nextQuery})\n              }\n            }\n          }\n\n          return changed ? nextState : prevState\n        })\n      }),\n    [_pushLocation, _replaceLocation, channel, locationStore],\n  )\n\n  // Pipe messages from frame to channel\n  useEffect(() => frame.message.subscribe(channel.publish), [channel, frame])\n\n  useEffect(() => {\n    frameReadyRef.current = frameReady\n  }, [frameReady])\n\n  // Handle location updates\n  useEffect(\n    () =>\n      locationStore.subscribe((loc) => {\n        const nextState = getStateFromLocation(loc, undefined, frameReady)\n\n        broadcast({type: 'workshop/setState', value: nextState})\n      }),\n    [broadcast, frameReady, locationStore],\n  )\n\n  // Observe `scheme` state\n  useEffect(() => {\n    schemeRef.current = scheme\n\n    // Call the `onSchemeChange` callback when `scheme` changes\n    onSchemeChange(scheme)\n  }, [onSchemeChange, scheme])\n\n  // Broadcast changes to `scheme` property\n  useEffect(() => {\n    if (schemeProp) {\n      if (schemeRef.current !== schemeProp) {\n        schemeRef.current = schemeProp\n        broadcast({type: 'workshop/setScheme', value: schemeProp})\n      }\n    }\n  }, [broadcast, schemeProp])\n\n  if (!config.scopes) {\n    return <>No scopes</>\n  }\n\n  return (\n    <WorkshopProvider\n      config={config}\n      broadcast={broadcast}\n      channel={channel}\n      frameReady={frameReady}\n      origin=\"main\"\n      path={path}\n      payload={payload}\n      scheme={scheme}\n      viewport={viewport}\n      zoom={zoom}\n    >\n      <ToastProvider>\n        <BoundaryElementProvider element={boundaryElement}>\n          <PortalProvider element={portalElement}>\n            <Flex\n              data-boundary=\"\"\n              direction=\"column\"\n              height=\"fill\"\n              ref={setBoundaryElement}\n              style={{minWidth: 320}}\n            >\n              {withNavbar && (\n                <WorkshopNavbar\n                  inspectorExpanded={inspectorExpanded}\n                  navigatorExpanded={navigatorExpanded}\n                  onInspectorToggle={handleInspectorToggle}\n                  onNavigatorToggle={handleNavigatorToggle}\n                />\n              )}\n\n              <Flex flex={1}>\n                <WorkshopNavigator collections={config.collections} expanded={navigatorExpanded} />\n                <WorkshopCanvas\n                  frameRef={frame.setElement}\n                  hidden={navigatorExpanded || inspectorExpanded}\n                />\n                <WorkshopInspector expanded={inspectorExpanded} />\n              </Flex>\n\n              <div data-portal=\"\" ref={setPortalElement} />\n            </Flex>\n          </PortalProvider>\n        </BoundaryElementProvider>\n      </ToastProvider>\n    </WorkshopProvider>\n  )\n})\n","import {studioTheme, ThemeColorSchemeKey, ThemeProvider, usePrefersDark} from '@sanity/ui'\nimport {StrictMode, useEffect, useMemo, useState} from 'react'\nimport {createRoot} from 'react-dom/client'\n\nimport {WorkshopConfig} from './config'\nimport {GlobalStyle} from './GlobalStyle'\nimport {createLocationStore} from './location'\nimport {Workshop} from './Workshop'\n\n/** @beta */\nexport function mount(options: {config: WorkshopConfig; element: HTMLElement | null}): void {\n  const {config, element} = options\n\n  if (!element) throw new Error('missing element')\n\n  const root = createRoot(element)\n\n  root.render(\n    <StrictMode>\n      <Root config={config} />\n    </StrictMode>,\n  )\n}\n\nfunction Root(props: {config: WorkshopConfig}) {\n  const {config} = props\n  const prefersDark = usePrefersDark()\n  const [scheme, setScheme] = useState<ThemeColorSchemeKey>(prefersDark ? 'dark' : 'light')\n  const locationStore = useMemo(() => createLocationStore(), [])\n\n  useEffect(() => {\n    setScheme(prefersDark ? 'dark' : 'light')\n  }, [prefersDark])\n\n  return (\n    <ThemeProvider scheme={scheme} theme={config.theme || studioTheme}>\n      <GlobalStyle />\n      <Workshop\n        config={config}\n        locationStore={locationStore}\n        scheme={scheme}\n        onSchemeChange={setScheme}\n      />\n    </ThemeProvider>\n  )\n}\n","import {studioTheme, ThemeColorSchemeKey, ThemeProvider, usePrefersDark} from '@sanity/ui'\nimport {StrictMode, useState} from 'react'\nimport {createRoot} from 'react-dom/client'\n\nimport {WorkshopConfig} from './config'\nimport {WorkshopFrame} from './frame'\nimport {GlobalStyle} from './GlobalStyle'\n\n/** @beta */\nexport function mountFrame(options: {config: WorkshopConfig; element: HTMLElement | null}): void {\n  const {config, element} = options\n\n  if (!element) throw new Error('missing element')\n\n  const root = createRoot(element)\n\n  root.render(\n    <StrictMode>\n      <Root config={config} />\n    </StrictMode>,\n  )\n}\n\nfunction Root(props: {config: WorkshopConfig}) {\n  const {config} = props\n  const prefersDark = usePrefersDark()\n  const [scheme, setScheme] = useState<ThemeColorSchemeKey>(prefersDark ? 'dark' : 'light')\n\n  return (\n    <ThemeProvider scheme={scheme} theme={config.theme || studioTheme}>\n      <GlobalStyle />\n      <WorkshopFrame config={config} setScheme={setScheme} />\n    </ThemeProvider>\n  )\n}\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport {useCallback} from 'react'\n\nimport {useWorkshop} from './useWorkshop'\n\n/** @public */\nexport function useAction(\n  name: string,\n  options?: {preventDefault?: boolean},\n): (...args: unknown[]) => void {\n  const {preventDefault = false} = options || {}\n  const {scope, story} = useWorkshop()\n\n  return useCallback(\n    (...args: unknown[]) => {\n      if (!scope || !story) return\n\n      const ev: any = args[0]\n\n      if (preventDefault && 'preventDefault' in ev && typeof ev.preventDefault === 'function') {\n        ev.preventDefault()\n      }\n\n      // eslint-disable-next-line no-console\n      console.log(`[${scope.name}/${story.name}]`, name, ...args)\n    },\n    [preventDefault, scope, story, name],\n  )\n}\n"],"names":["defineConfig","config","defineRuntime","defineScope","scope","EMPTY_ARRAY","EMPTY_RECORD","DEFAULT_VIEWPORT_VALUE","DEFAULT_ZOOM_VALUE","VIEWPORT_OPTIONS","name","title","rect","width","height","ZOOM_OPTIONS","value","createPubsub","subscribers","Set","publish","msg","subscriber","subscribe","add","delete","qs","parse","str","params","URLSearchParams","q","forEach","key","stringify","Object","entries","map","join","resolveLocation","scopes","path","segments","split","slice","filter","Boolean","p","length","story","stories","storyPath","buildFrameUrl","baseUrl","payload","scheme","viewport","zoom","encodeURIComponent","PropsContext","createContext","useProps","props","useContext","Error","BooleanProp","memo","$","_c","schema","setPropValue","t0","Symbol","for","lineHeight","t1","t2","event","currentTarget","checked","t3","jsx","Box","Checkbox","t4","Text","t5","jsxs","Flex","NumberProp","undefined","Number","TextInput","SelectProp","valueProp","options","k","v","bb0","optionKey","optionValue","String","_temp","t6","Select","t7","StringProp","TextProp","TextArea","Prop","type","PropsInspector","schemas","schemaIndex","defaultValue","isEqual","lodashIsEqual","WorkshopContext","useWorkshop","workshop","btoa","window","Buffer","from","toString","atob","uint8ArrayToBase64","uint8array","i","fromCharCode","base64ToUint8Array","base64","binStr","len","bytes","Uint8Array","charCodeAt","decode","input","arr","pako","inflate","to","encode","deflate","encodeValue","val","JSON","decodeValue","propsReducer","state","some","s","concat","PropsProvider","children","channel","broadcast","encodedValue","encodedValueRef","useRef","setState","useState","registerProp","unregisterProp","name_0","_value","ctx","t8","prevState","nextState","useEffect","t10","t9","nextEncodedValue","current","t11","t12","prevState_0","nextValue","t13","useBoolean","groupName","useNumber","useSelect","useString","useText","propsPlugin","inspector","provider","WorkshopProvider","frameReady","origin","plugins","collections","frameUrl","pluginsProp","wrappedChildren","plugin","Provider","displayName","workshopReducer","ROOT_PATH","process","env","RE_URL","RE_VITE_FS_PREFIX","RE_VITE_FS_SUFFIX","formatStack","stack","ret","decodeURIComponent","replace","replaceRootPath","rootPath","re","RegExp","WorkshopCanvas","error","errorInfo","info","catchError","handleRetry","Fragment","Card","component","createElement","ErrorBoundary","Suspense","LoadingScreen","Spinner","ErrorScreen","onRetry","message","Heading","Button","Code","componentStack","Stack","isArray","Array","isRecord","createMainController","_subscribers","_msgQueue","_flushTimeout","_flush","clearInterval","setTimeout","parent","postMessage","_handleMessage","msgs","data","startsWith","_mount","addEventListener","_unmount","removeEventListener","push","size","getStateFromLocation","query","location","search","WorkshopFrame","setScheme","main","boundaryElement","setBoundaryElement","portalElement","setPortalElement","msg_0","t14","t15","t16","PortalProvider","t17","ToastProvider","BoundaryElementProvider","_buildLocationUrl","loc","_getStateFromWindow","pathname","substr","createLocationStore","_handlePopState","_notifySubscribers","get","nextLocation","history","pushState","document","replaceState","GlobalStyle","createGlobalStyle","theme","sanity","color","base","bg","MemoTab","Tab","Root","styled","media","InspectorHeader","currentTabId","onTabChange","tabs","flex","position","top","layerStyle","tab","id","Layer","TabList","InspectorTabView","selected","handleClick","label","tone","MemoRender","Component","WorkshopInspector","expanded","_temp2","tabId","setTabId","currentTab","find","showTabs","display","tab_0","TabPanel","plugin_0","debounce","lodashDebounce","NavbarBreadcrumbs","preventDefault","handleHomeClick","NavbarBreadcrumbsView","onHomeClick","scopeTitle","storyTitle","Breadcrumbs","OpenCanvasButton","canvasUrl","LaunchIcon","SchemeMenu","handleToggleScheme","SchemeMenuView","dark","onToggleScheme","MoonIcon","SunIcon","ViewportMenu","setViewport","POPOVER_PROPS","constrainSize","placement","portal","ViewportMenuView","disabled","o","SelectIcon","option","MenuItem","Menu","MenuButton","ZoomMenu","setZoom","ZoomMenuView","WorkshopNavbar","inspectorExpanded","navigatorExpanded","onInspectorToggle","onNavigatorToggle","mediaIndex","useMediaIndex","MenuIcon","minWidth","ControlsIcon","Inline","parseMenuNode","node","__scope__","coll","c","items","flatMap","child","buildMenu","scopeMap","scopeName","prevScope","mergedScope","tree","values","set","rootNode","entry","SearchResults","matches","onStoryClick","StoryTree","Tree","MenuItems","basePath","workshopPath","currentScope","currentStory","targetPath","getAttribute","handleStoryClick","item","itemIndex","TreeItem","MemoList","MemoScope","flexNoneStyle","lineHeightNoneStyle","textInputFontSize","WorkshopNavigator","menu","setQuery","toLowerCase","includes","handleSearchQueryChange","handleSearchQueryClear","event_0","NavigatorView","onSearchQueryChange","onSearchQueryClear","SearchIcon","Frame","iframe","frameRef","hidden","viewportOption","viewportW","viewportH","initialFrameUrl","maxWidth","maxHeight","containerStyle","transform","transformOrigin","frameStyle","Container","createWorkshopFrameController","_frameElement","contentWindow","el","setElement","prevFrameElement","schemeProp","getQueryFromState","withPayload","console","warn","Workshop","locationStore","onSchemeChange","withNavbar","features","navbar","frame","setNavigatorExpanded","setInspectorExpanded","frameReadyRef","schemeRef","pathRef","queryRef","_pushLocation","loc_0","_replaceLocation","handleNavigatorToggle","handleInspectorToggle","mediaIndexRef","t18","t19","cancel","t20","t21","t22","changed","nextQuery","nextQuery_0","t23","t24","t25","t26","t27","t28","t29","loc_1","nextState_0","t30","t31","t32","t33","t34","t35","t36","t37","t38","t39","t40","t41","t42","t43","t44","t45","v_0","mount","element","createRoot","render","StrictMode","prefersDark","usePrefersDark","studioTheme","ThemeProvider","mountFrame","useAction","args","ev","log"],"mappings":";;;;;;;AAMO,SAASA,aAAaC,QAAsD;AAC1EA,SAAAA;AACT;ACFO,SAASC,cAAcD,QAAwD;AAC7EA,SAAAA;AACT;ACLO,SAASE,YAAYC,OAAqC;AACxDA,SAAAA;AACT;ACJaC,MAAAA,cAAuB,CAAE,GAGzBC,eAAwC,CAGxCC,GAAAA,yBAAyB,QAGzBC,qBAAqB,GAGrBC,mBAIP,CACJ;AAAA,EAACC,MAAM;AAAA,EAAQC,OAAO;AAAA,EAAQC,MAAM;AAAA,IAACC,OAAO;AAAA,EAAA;AAAO,GACnD;AAAA,EAACH,MAAM;AAAA,EAAOC,OAAO;AAAA,EAASC,MAAM;AAAA,IAACC,OAAO;AAAA,EAAA;AAAI,GAChD;AAAA,EAACH,MAAM;AAAA,EAAOC,OAAO;AAAA,EAASC,MAAM;AAAA,IAACC,OAAO;AAAA,IAAKC,QAAQ;AAAA,EAAA;AAAI,GAC7D;AAAA,EAACJ,MAAM;AAAA,EAAOC,OAAO;AAAA,EAASC,MAAM;AAAA,IAACC,OAAO;AAAA,IAAKC,QAAQ;AAAA,EAAA;AAAI,CAAC,GAInDC,eAAiD,CAC5D;AAAA,EAACC,OAAO;AAAA,EAAKL,OAAO;AAAK,GACzB;AAAA,EAACK,OAAO;AAAA,EAAML,OAAO;AAAK,GAC1B;AAAA,EAACK,OAAO;AAAA,EAAGL,OAAO;AAAM,GACxB;AAAA,EAACK,OAAO;AAAA,EAAKL,OAAO;AAAM,GAC1B;AAAA,EAACK,OAAO;AAAA,EAAGL,OAAO;AAAM,GACxB;AAAA,EAACK,OAAO;AAAA,EAAGL,OAAO;AAAM,CAAC;ACxBpB,SAASM,eAA2C;AACnDC,QAAAA,kCAAkBC,IAAwB;AAEzC,SAAA;AAAA,IACLC,QAAQC,KAAU;AAChB,iBAAWC,cAAcJ;AACvBI,mBAAWD,GAAG;AAAA,IAElB;AAAA,IAEAE,UAAUD,YAAgC;AAC5BE,aAAAA,YAAAA,IAAIF,UAAU,GAEnB,MAAM;AACXJ,oBAAYO,OAAOH,UAAU;AAAA,MAC/B;AAAA,IAAA;AAAA,EAEJ;AACF;ACxBO,MAAMI,KAAK;AAAA,EAChBC,MAAMC,KAAqC;AACzC,UAAMC,SAAS,IAAIC,gBAAgB,MAAMF,GAAG,GACtCG,IAA4B,CAAC;AAE5BC,WAAAA,OAAAA,QAAQ,CAAChB,OAAOiB,QAAQ;AAC7BF,QAAEE,GAAG,IAAIjB;AAAAA,IACV,CAAA,GAEMe;AAAAA,EACT;AAAA,EAEAG,UAAUH,GAAqC;AAC7C,WAAOI,OAAOC,QAAQL,CAAC,EACpBM,IAAI,CAAC,CAACJ,KAAKjB,KAAK,MAAM,GAAGiB,GAAG,IAAIjB,KAAK,EAAE,EACvCsB,KAAK,GAAG;AAAA,EAAA;AAEf;ACbgBC,SAAAA,gBACdC,QACAC,MAC4D;AAC5D,QAAMC,WAAWD,KAAKE,MAAM,GAAG,EAAEC,MAAM,CAAC,EAAEC,OAAOC,OAAO,GAElDC,IAAIL,SAASJ,KAAK,GAAG;AAE3B,MAAII,SAASM,WAAW;AACf,WAAA;AAAA,MACL5C,OAAO;AAAA,MACP6C,OAAO;AAAA,IACT;AAGF,aAAW7C,SAASoC;AACPS,eAAAA,SAAS7C,MAAM8C,SAAS;AAC3BC,YAAAA,YAAY,CAAC/C,MAAMM,MAAMuC,MAAMvC,IAAI,EAAEmC,OAAOC,OAAO,EAAER,KAAK,GAAG;AAEnE,UAAIS,MAAMI;AACD,eAAA;AAAA,UAAC/C;AAAAA,UAAO6C;AAAAA,QAAK;AAAA,IAAA;AAKnB,SAAA;AAAA,IAAC7C,OAAO;AAAA,IAAM6C,OAAO;AAAA,EAAI;AAClC;AAGO,SAASG,cAAcvB,QAOnB;AACH,QAAA;AAAA,IAACwB,UAAU;AAAA,IAAWZ;AAAAA,IAAMa;AAAAA,IAASC;AAAAA,IAAQC;AAAAA,IAAUC;AAAAA,EAAAA,IAAQ5B;AAErE,SAAO,CACLwB,SACA,SAASK,mBAAmBjB,IAAI,CAAC,IACjC,WAAWc,MAAM,IACjB,aAAaC,QAAQ,IACrB,SAASC,IAAI,IACb,GAAGtB,OAAOC,QAAQkB,OAAO,EAAEjB,IAAI,CAAC,CAACJ,KAAKjB,KAAK,MAClC,IAAIiB,GAAG,IAAIjB,KAAK,EACxB,CAAC,EACFsB,KAAK,EAAE;AACX;ACxCaqB,MAAAA,eAAeC,oBAAwC,IAAI;ACTjE,SAAAC,WAAA;AACLC,QAAAA,QAAcC,iBAAAJ,YAAuB;AAAC,MAAA,CAEjCG;AAAKE,UAAAA,IAAAA,MACQ,8BAA8B;AAGzCF,SAAAA;AAAK;ACLDG,MAAAA,cAAcC,MAAAA,KAAK,SAAAJ,OAAA;AAAAK,QAAAA,IAAAC,uBAAA,EAAA,GAI9B;AAAA,IAAAC;AAAAA,IAAArD;AAAAA,MAAwB8C,OACxB;AAAA,IAAAQ;AAAAA,MAAuBT,SAAS;AAACU,MAAAA;AAAAJ,IAAA,CAAA,MAAAK,OAAAC,IAAA,2BAAA,KAIDF,KAAA;AAAA,IAAAG,YAAA;AAAA,EAAA,GAAeP,OAAAI,MAAAA,KAAAJ,EAAA,CAAA;AAE9B,QAAAQ,KAAA3D,SAAc;AAAA4D,MAAAA;AAAAT,WAAAE,OAAA3D,QAAAyD,SAAAG,gBACbM,KAAAC,CAAAA,UAAWP,aAAaD,OAAM3D,MAAOmE,MAAKC,cAAAC,OAAsB,GAACZ,EAAA,CAAA,IAAAE,OAAA3D,MAAAyD,OAAAG,cAAAH,OAAAS,MAAAA,KAAAT,EAAA,CAAA;AAAAa,MAAAA;AAAAb,IAAAQ,CAAAA,MAAAA,MAAAR,SAAAS,MAH/EI,KAACC,2BAAAA,IAAAC,GAAAA,OAAiB,aAAA,GAAU,OAAAX,IAC1B,yCAACY,GAAAA,UACU,EAAA,SAAAR,IACC,UAAAC,IAEd,EAAA,CAAA,GAAMT,OAAAQ,IAAAR,OAAAS,IAAAT,OAAAa,MAAAA,KAAAb,EAAA,CAAA;AAAAiB,MAAAA;AAAAjB,IAAA,CAAA,MAAAE,OAAA3D,QACN0E,KAACH,2BAAAA,IAAAC,GAAA,KAAA,EAAc,UAAA,GACb,UAACD,2BAAA,IAAAI,GAAA,MAAA,EAAW,MAAC,GAAS,QAAA,YACnBhB,UAAAA,OAAM3D,KACT,CAAA,EAAA,CACF,GAAMyD,EAAA,CAAA,IAAAE,OAAA3D,MAAAyD,OAAAiB,MAAAA,KAAAjB,EAAA,CAAA;AAAAmB,MAAAA;AAAA,SAAAnB,EAAAa,CAAAA,MAAAA,MAAAb,UAAAiB,MAXRE,KAACC,2BAAA,KAAAC,GAAA,MAAA,EAAQ,IAAA,SAAiB,YACxBR,UAAAA;AAAAA,IAAAA;AAAAA,IAMAI;AAAAA,EAAAA,EAKF,CAAA,GAAOjB,OAAAa,IAAAb,QAAAiB,IAAAjB,QAAAmB,MAAAA,KAAAnB,EAAA,EAAA,GAZPmB;AAYO,CAEV,GCtBYG,aAAavB,MAAAA,KAAK,SAAAJ,OAAA;AAAAK,QAAAA,IAAAC,uBAAA,EAAA,GAI7B;AAAA,IAAAC;AAAAA,IAAArD,OAAAuD;AAAAA,EAAAA,IAA6BT,OAAd9C,QAAAuD,OAAUmB,SAAF,KAARnB,IACf;AAAA,IAAAD;AAAAA,MAAuBT,SAAS;AAACc,MAAAA;AAAAR,IAAA,CAAA,MAAAE,OAAA3D,QAI7BiE,oCAACU,GAAW,MAAA,EAAA,MAAA,GAAU,QAAA,YACnBhB,UAAAA,OAAM3D,KACT,CAAA,GAAOyD,EAAA,CAAA,IAAAE,OAAA3D,MAAAyD,OAAAQ,MAAAA,KAAAR,EAAA,CAAA;AAAAS,MAAAA;AAAAT,IAAA,CAAA,MAAAK,OAAAC,IAAA,2BAAA,KAGOG,KAAA,CAAA,GAAA,GAAA,CAAA,GAAST,OAAAS,MAAAA,KAAAT,EAAA,CAAA;AAAAa,MAAAA;AAAAb,WAAAE,OAAA3D,QAAAyD,SAAAG,gBACTU,KAAAH,CAAWP,UAAAA,aAAaD,OAAM3D,MAAOiF,OAAOd,MAAKC,cAAA9D,KAAoB,CAAC,GAACmD,EAAA,CAAA,IAAAE,OAAA3D,MAAAyD,OAAAG,cAAAH,OAAAa,MAAAA,KAAAb,EAAA,CAAA;AAAAiB,MAAAA;AAAAjB,IAAAa,CAAAA,MAAAA,MAAAb,SAAAnD,SAHrFoE,KAACH,2BAAA,IAAAC,UAAe,WAAC,GACf,yCAACU,GAAAA,WACW,EAAA,UAAAhB,IACA,UAAAI,IACD,SAAA,GACFhE,OAEX,EAAA,CAAA,GAAMmD,OAAAa,IAAAb,OAAAnD,OAAAmD,OAAAiB,MAAAA,KAAAjB,EAAA,CAAA;AAAAmB,MAAAA;AAAA,SAAAnB,EAAAQ,CAAAA,MAAAA,MAAAR,UAAAiB,MAXRE,KAACC,2BAAA,KAAAL,GAAa,KAAA,EAAA,SAAC,GACbP,UAAAA;AAAAA,IAAAA;AAAAA,IAGAS;AAAAA,EAAAA,EAQF,CAAA,GAAMjB,OAAAQ,IAAAR,QAAAiB,IAAAjB,QAAAmB,MAAAA,KAAAnB,EAAA,EAAA,GAZNmB;AAYM,CAET,GCrBYO,aAAa3B,MAAAA,KAAK,SAAAJ,OAAA;AAAAK,QAAAA,IAAAC,uBAAA,EAAA,GAI7B;AAAA,IAAAC;AAAAA,IAAArD,OAAA8E;AAAAA,MAAmChC,OACnC;AAAA,IAAAQ;AAAAA,MAAuBT,SAAS;AAACU,MAAAA;AAAA,OAAA;AAAAJ,QAAAA,SAAAE,OAAA0B,WAAA5B,SAAA2B,WAAA;AAG/B,YAAA1D,UAAgBD,OAAAC,QAAeiC,OAAM0B,OAAQ;kBAExCC,GAAAC,CAAA,KAAgB7D;AAAO,YACtB6D,MAAMH,WAAS;AACVE,eAAAA;AAACE,gBAAAA;AAAAA,QAAAA;AAAA,QAAA,CAAA,IAAA7B,OAAA0B,SAAA5B,OAAA2B,WAAA3B,OAAAI;AAAAA,IAAA;AAAAA,WAAAJ,EAAA,CAAA;AAIL,SAAA;AAAA,EAAA;AATT,QAAAnD,QAAcuD;AAUSI,MAAAA;AAAAR,IAAA,CAAA,MAAAE,OAAA3D,QAInBiE,oCAACU,GAAW,MAAA,EAAA,MAAA,GAAU,QAAA,YACnBhB,UAAAA,OAAM3D,KACT,CAAA,GAAOyD,EAAA,CAAA,IAAAE,OAAA3D,MAAAyD,OAAAQ,MAAAA,KAAAR,EAAA,CAAA;AAAAS,MAAAA;AAAAT,IAAA,CAAA,MAAAK,OAAAC,IAAA,2BAAA,KAGOG,KAAA,CAAA,GAAA,GAAA,CAAA,GAAST,OAAAS,MAAAA,KAAAT,EAAA,CAAA;AAAAa,MAAAA;AAAAb,IAAA,CAAA,MAAAE,OAAA3D,QAAAyD,EAAAE,CAAAA,MAAAA,OAAA0B,WAAA5B,SAAAG,gBACTU,KAAAH,CAAA,UAAA;AACR,UAAAsB,YAAkBtB,MAAKC,cAAA9D,OACvBoF,cAAoB/B,OAAM0B,QAASI,SAAS;AAE/B9B,iBAAAA,OAAM3D,MAAO0F,WAAW;AAAA,EAAA,GACtCjC,EAAA,CAAA,IAAAE,OAAA3D,MAAAyD,EAAA,CAAA,IAAAE,OAAA0B,SAAA5B,OAAAG,cAAAH,OAAAa,MAAAA,KAAAb,EAAA,CAAA;AAGMiB,QAAAA,KAAAiB,OAAOrF,SAAS,EAAE;AAACsE,MAAAA;AAAAnB,IAAA,EAAA,MAAAE,OAAA0B,WAEzBT,KAAAnD,OAAAC,QAAeiC,OAAM0B,OAAQ,EAAC1D,IAAAiE,OAI9B,GAACnC,EAAA,EAAA,IAAAE,OAAA0B,SAAA5B,QAAAmB,MAAAA,KAAAnB,EAAA,EAAA;AAAAoC,MAAAA;AAAApC,IAAAa,EAAAA,MAAAA,MAAAb,UAAAiB,MAAAjB,EAAA,EAAA,MAAAmB,MAjBNiB,KAAAtB,2BAAAA,IAACC,GAAe,KAAA,EAAA,WAAC,GACf,UAAAD,2BAAAA,IAACuB,GAAAA,UACW,UAAA5B,IACA,UAAAI,IAMD,SAAA,GACD,WACD,OAAAI,IAENE,UAKH,GAAA,CAAA,EACF,CAAA,GAAMnB,QAAAa,IAAAb,QAAAiB,IAAAjB,QAAAmB,IAAAnB,QAAAoC,MAAAA,KAAApC,EAAA,EAAA;AAAAsC,MAAAA;AAAA,SAAAtC,EAAAQ,EAAAA,MAAAA,MAAAR,UAAAoC,MAvBRE,KAAClB,2BAAA,KAAAL,GAAa,KAAA,EAAA,SAAC,GACbP,UAAAA;AAAAA,IAAAA;AAAAA,IAGA4B;AAAAA,EAAAA,EAoBF,CAAA,GAAMpC,QAAAQ,IAAAR,QAAAoC,IAAApC,QAAAsC,MAAAA,KAAAtC,EAAA,EAAA,GAxBNsC;AAwBM,CAET;AA9C8B,SAAAH,QAAA/B,IAAA;AAqCgBtC,QAAAA,CAAAA,GAAA,IAAAsC;AAAK,SAG/BU,2BAAA,IAAA,UAAA,EAFgBhD,YACpB,oBACL;AAAS;ACzCRyE,MAAAA,aAAaxC,MAAAA,KAAK,SAAAJ,OAAA;AAAAK,QAAAA,IAAAC,uBAAA,EAAA,GAI7B;AAAA,IAAAC;AAAAA,IAAArD;AAAAA,MAAwB8C,OACxB;AAAA,IAAAQ;AAAAA,MAAuBT,SAAS;AAACU,MAAAA;AAAAJ,IAAA,CAAA,MAAAE,OAAA3D,QAI7B6D,oCAACc,GAAW,MAAA,EAAA,MAAA,GAAU,QAAA,YACnBhB,UAAAA,OAAM3D,KACT,CAAA,GAAOyD,EAAA,CAAA,IAAAE,OAAA3D,MAAAyD,OAAAI,MAAAA,KAAAJ,EAAA,CAAA;AAAAQ,MAAAA;AAAAR,IAAA,CAAA,MAAAK,OAAAC,IAAA,2BAAA,KAGOE,KAAA,CAAA,GAAA,GAAA,CAAA,GAASR,OAAAQ,MAAAA,KAAAR,EAAA,CAAA;AAAAS,MAAAA;AAAAT,WAAAE,OAAA3D,QAAAyD,SAAAG,gBACTM,KAAAC,CAAAA,UAAWP,aAAaD,OAAM3D,MAAOmE,MAAKC,cAAA9D,KAAoB,GAACmD,EAAA,CAAA,IAAAE,OAAA3D,MAAAyD,OAAAG,cAAAH,OAAAS,MAAAA,KAAAT,EAAA,CAAA;AAElE,QAAAa,KAAAhE,SAAS;AAAEoE,MAAAA;AAAAjB,IAAAS,CAAAA,MAAAA,MAAAT,SAAAa,MALtBI,KAACH,2BAAA,IAAAC,UAAe,WAAC,GACf,yCAACU,GAAAA,WACW,EAAA,UAAAjB,IACA,UAAAC,IACD,SAAC,GACH,OAAAI,GAEX,CAAA,EAAA,CAAA,GAAMb,OAAAS,IAAAT,OAAAa,IAAAb,OAAAiB,MAAAA,KAAAjB,EAAA,CAAA;AAAAmB,MAAAA;AAAA,SAAAnB,EAAAI,CAAAA,MAAAA,MAAAJ,UAAAiB,MAXRE,KAACC,2BAAA,KAAAL,GAAa,KAAA,EAAA,SAAC,GACbX,UAAAA;AAAAA,IAAAA;AAAAA,IAGAa;AAAAA,EAAAA,EAQF,CAAA,GAAMjB,OAAAI,IAAAJ,QAAAiB,IAAAjB,QAAAmB,MAAAA,KAAAnB,EAAA,EAAA,GAZNmB;AAYM,CAET,GCtBYqB,WAAWzC,MAAAA,KAAK,SAAAJ,OAAA;AAAAK,QAAAA,IAAAC,uBAAA,EAAA,GAI3B;AAAA,IAAAC;AAAAA,IAAArD;AAAAA,MAAwB8C,OACxB;AAAA,IAAAQ;AAAAA,MAAuBT,SAAS;AAACU,MAAAA;AAAAJ,IAAA,CAAA,MAAAE,OAAA3D,QAI7B6D,oCAACc,GAAW,MAAA,EAAA,MAAA,GAAU,QAAA,YACnBhB,UAAAA,OAAM3D,KACT,CAAA,GAAOyD,EAAA,CAAA,IAAAE,OAAA3D,MAAAyD,OAAAI,MAAAA,KAAAJ,EAAA,CAAA;AAAAQ,MAAAA;AAAAR,IAAA,CAAA,MAAAK,OAAAC,IAAA,2BAAA,KAGOE,KAAA,CAAA,GAAA,GAAA,CAAA,GAASR,OAAAQ,MAAAA,KAAAR,EAAA,CAAA;AAAAS,MAAAA;AAAAT,WAAAE,OAAA3D,QAAAyD,SAAAG,gBACTM,KAAAC,CAAAA,UAAWP,aAAaD,OAAM3D,MAAOmE,MAAKC,cAAA9D,KAAoB,GAACmD,EAAA,CAAA,IAAAE,OAAA3D,MAAAyD,OAAAG,cAAAH,OAAAS,MAAAA,KAAAT,EAAA,CAAA;AAElE,QAAAa,KAAAhE,SAAS;AAAEoE,MAAAA;AAAAjB,IAAAS,CAAAA,MAAAA,MAAAT,SAAAa,MALtBI,KAACH,2BAAA,IAAAC,UAAe,WAAC,GACf,yCAAC0B,GAAAA,UACW,EAAA,UAAAjC,IACA,UAAAC,IACJ,MAAC,GACA,OAAAI,GAEX,CAAA,EAAA,CAAA,GAAMb,OAAAS,IAAAT,OAAAa,IAAAb,OAAAiB,MAAAA,KAAAjB,EAAA,CAAA;AAAAmB,MAAAA;AAAA,SAAAnB,EAAAI,CAAAA,MAAAA,MAAAJ,UAAAiB,MAXRE,KAACC,2BAAA,KAAAL,GAAa,KAAA,EAAA,SAAC,GACbX,UAAAA;AAAAA,IAAAA;AAAAA,IAGAa;AAAAA,EAAAA,EAQF,CAAA,GAAMjB,OAAAI,IAAAJ,QAAAiB,IAAAjB,QAAAmB,MAAAA,KAAAnB,EAAA,EAAA,GAZNmB;AAYM,CAET;AClBM,SAAAuB,KAAA/C,OAAA;AAAAK,QAAAA,IAAAC,uBAAA,EAAA,GACL;AAAA,IAAAC;AAAAA,IAAArD;AAAAA,EAAAA,IAAwB8C;AAEpBO,MAAAA,OAAMyC,SAAU,WAAS;AAAAvC,QAAAA;AAAA,WAAAJ,EAAAE,CAAAA,MAAAA,UAAAF,SAAAnD,SACpBuD,MAACU,2BAAAA,IAAA,aAAoBZ,EAAAA,QAAerD,MAAS,CAAA,GAAAmD,OAAAE,QAAAF,OAAAnD,OAAAmD,OAAAI,OAAAA,MAAAJ,EAAA,CAAA,GAA7CI;AAAAA,EAAAA;AAGLF,MAAAA,OAAMyC,SAAU,UAAQ;AAAAvC,QAAAA;AAAA,WAAAJ,EAAAE,CAAAA,MAAAA,UAAAF,SAAAnD,SACnBuD,MAACU,2BAAAA,IAAA,YAAmBZ,EAAAA,QAAerD,MAAS,CAAA,GAAAmD,OAAAE,QAAAF,OAAAnD,OAAAmD,OAAAI,OAAAA,MAAAJ,EAAA,CAAA,GAA5CI;AAAAA,EAAAA;AAGLF,MAAAA,OAAMyC,SAAU,UAAQ;AAAAvC,QAAAA;AAAA,WAAAJ,EAAAE,CAAAA,MAAAA,UAAAF,SAAAnD,SACnBuD,MAACU,2BAAAA,IAAA,YAAmBZ,EAAAA,QAAerD,MAAS,CAAA,GAAAmD,OAAAE,QAAAF,OAAAnD,OAAAmD,OAAAI,OAAAA,MAAAJ,EAAA,CAAA,GAA5CI;AAAAA,EAAAA;AAGLF,MAAAA,OAAMyC,SAAU,UAAQ;AAAAvC,QAAAA;AAAA,WAAAJ,EAAAE,CAAAA,MAAAA,UAAAF,UAAAnD,SACnBuD,MAACU,2BAAAA,IAAA,YAAmBZ,EAAAA,QAAerD,MAAS,CAAA,GAAAmD,OAAAE,QAAAF,QAAAnD,OAAAmD,QAAAI,OAAAA,MAAAJ,EAAA,EAAA,GAA5CI;AAAAA,EAAAA;AAGLF,MAAAA,OAAMyC,SAAU,QAAM;AAAAvC,QAAAA;AAAA,WAAAJ,EAAAE,EAAAA,MAAAA,UAAAF,UAAAnD,SACjBuD,MAACU,2BAAAA,IAAA,UAAiBZ,EAAAA,QAAerD,MAAS,CAAA,GAAAmD,QAAAE,QAAAF,QAAAnD,OAAAmD,QAAAI,OAAAA,MAAAJ,EAAA,EAAA,GAA1CI;AAAAA,EAAAA;AAQCA,QAAAA,KAAAF,QAAwBM,KAAAN;AAAaO,MAAAA;AAAAT,SAAAA,EAAAI,EAAAA,MAAAA,GAAA7D,QAAAyD,EAAA,EAAA,MAAAQ,GAAAmC,QAJ7ClC,KAACK,2BAAA,IAAAC,QAAA,EAAa,SAAA,GACZ,UAAAK,gCAACF,GAAAA,QAAW,SAAU,QAAA,YAAW,UAAA;AAAA,IAAA;AAAA,IACV;AAAA,oCAGd,QADHd,EAAAA,UAAAA;AAAAA,MAAa7D,GAAAA;AAAAA,MAAO;AAAA,MAAIiE,GAAamC;AAAAA,IAAAA,EACzC,CAAA;AAAA,EAAA,GACF,GACF,GAAM3C,EAAA,EAAA,IAAAI,GAAA7D,MAAAyD,EAAA,EAAA,IAAAQ,GAAAmC,MAAA3C,QAAAS,MAAAA,KAAAT,EAAA,EAAA,GAPNS;AAOM;ACnCGmC,MAAAA,iBAAiB7C,WAAK,WAAA;AAAAC,QAAAA,IAAAC,uBAAA,CAAA,GACjC;AAAA,IAAA4C;AAAAA,IAAAhG;AAAAA,MAAyB6C,SAAS;AAACU,MAAAA;AAAAJ,IAAA,CAAA,MAAA6C,QAAAhE,UAI9BuB,KAAAyC,QAAOhE,gBACNiC,2BAAAA,IAACC,GAAAA,OAAa,SAAC,GACb,UAACD,2BAAA,IAAAI,SAAA,EAAK,OAAI,IAAQ,MAAQ,CAAA,GAAA,GAAA,CAAA,GAAG,UAE7B,iBAAA,EAAA,CACF,GACDlB,EAAA,CAAA,IAAA6C,QAAAhE,QAAAmB,OAAAI,MAAAA,KAAAJ,EAAA,CAAA;AAAAQ,MAAAA;AAAAR,IAAA6C,CAAAA,MAAAA,WAAA7C,SAAAnD,SAEA2D,KAAAqC,QAAOhE,cACNgE,QAAO3E,IAAAgC,CAAAA,QAAA4C,+CACJ,MAES5C,EAAAA,QACD,OAAArD,MAAMqD,OAAM3D,IAAA,MAAAgF,SAAuBrB,OAAM6C,eAAgBlG,MAAMqD,OAAM3D,IAAA,EAF7D,GAAA,WAEmE,CAErF,GAACyD,OAAA6C,SAAA7C,OAAAnD,OAAAmD,OAAAQ,MAAAA,KAAAR,EAAA,CAAA;AAAAS,MAAAA;AAAA,SAAAT,EAAAI,CAAAA,MAAAA,MAAAJ,SAAAQ,MAhBNC,KAACW,2BAAA,KAAAL,GAAa,KAAA,EAAA,SAAC,GACZX,UAAAA;AAAAA,IAAAA;AAAAA,IAQAI;AAAAA,EAAAA,EAQH,CAAA,GAAMR,OAAAI,IAAAJ,OAAAQ,IAAAR,OAAAS,MAAAA,KAAAT,EAAA,CAAA,GAjBNS;AAiBM,CAET,GC3BYuC,UAAUC,uBAAAA,SCyBVC,kBAAkBzD,oBAA2C,IAAI;ACvBvE,SAAA0D,cAAA;AACLC,QAAAA,WAAiBxD,iBAAAsD,eAA0B;AAAC,MAAA,CAEvCE;AAAQvD,UAAAA,IAAAA,MACK,iCAAiC;AAG5CuD,SAAAA;AAAQ;ACVjB,MAAMC,OACJ,OAAOC,SAAW,MACb7F,CAAgB8F,QAAAA,OAAOC,KAAK/F,KAAK,QAAQ,EAAEgG,SAAS,QAAQ,IAC7DH,OAAOD,MAEPK,OACJ,OAAOJ,SAAW,MACb7F,CAAAA,QAAgB8F,OAAOC,KAAK/F,KAAK,QAAQ,EAAEgG,SAAS,QAAQ,IAC7DH,OAAOI;AAEb,SAASC,mBAAmBC,YAAgC;AAC1D,MAAInG,MAAM;AAEV,WAASoG,IAAI,GAAG;AAAA,IAAChF;AAAAA,EAAM,IAAI+E,YAAYC,IAAIhF,QAAQgF;AACjDpG,WAAOyE,OAAO4B,aAAaF,WAAWC,CAAC,CAAC;AAG1C,SAAOR,KAAK5F,GAAG;AACjB;AAEA,SAASsG,mBAAmBC,QAAgB;AACpCC,QAAAA,SAASP,KAAKM,MAAM,GACpBE,MAAMD,OAAOpF,QACbsF,QAAQ,IAAIC,WAAWF,GAAG;AAEvBL,WAAAA,IAAI,GAAGA,IAAIK,KAAKL;AACvBM,UAAMN,CAAC,IAAII,OAAOI,WAAWR,CAAC;AAGzBM,SAAAA;AACT;AAGO,SAASG,OAAOC,OAAuB;AACxCA,MAAAA,MAAM1F,WAAW,EAAU,QAAA;AAEzB2F,QAAAA,MAAMT,mBAAmBQ,KAAK;AAE7BE,SAAAA,cAAAA,QAAKC,QAAQF,KAAK;AAAA,IAACG,IAAI;AAAA,EAAA,CAAS;AACzC;AAGO,SAASC,OAAOL,OAAuB;AACxCA,MAAAA,MAAM1F,WAAW,EAAU,QAAA;AAEzB2F,QAAAA,MAAMC,cAAAA,QAAKI,QAAQN,KAAK;AAE9B,SAAOZ,mBAAmBa,GAAG;AAC/B;AC9CO,SAASM,YAAYC,KAAsC;AAChE,SAAOH,OAAOI,KAAKjH,UAAUgH,GAAG,CAAC;AACnC;AAGO,SAASE,YAAYF,KAAsC;AAC5D,MAAA;AACF,WAAOC,KAAKxH,MAAM8G,OAAOS,GAAG,CAAC;AAAA,EAAA,QACnB;AACH5I,WAAAA;AAAAA,EAAAA;AAEX;ACVgB+I,SAAAA,aAAaC,OAAmBjI,KAAyC;AACvF,SAAIA,IAAIyF,SAAS,4BACXwC,MAAMtI,UAAUK,IAAIL,QACfsI,QAGF;AAAA,IACL,GAAGA;AAAAA,IACHtI,OAAOK,IAAIL;AAAAA,EAAAA,IAIXK,IAAIyF,SAAS,gCACYwC,MAAMtC,QAAQuC,KAAMC,CAAMA,MAAAA,EAAE9I,SAASW,IAAIgD,OAAO3D,IAAI,IAGtE4I,QAGF;AAAA,IACL,GAAGA;AAAAA,IACHtC,SAASsC,MAAMtC,QAAQyC,OAAO,CAACpI,IAAIgD,MAAM,CAAC;AAAA,EAC5C,IAGEhD,IAAIyF,SAAS,gCACXwC,MAAMtI,MAAMK,IAAIX,IAAI,MAAMW,IAAIL,QACzBsI,QAGF;AAAA,IACL,GAAGA;AAAAA,IACHtI,OAAO;AAAA,MAAC,GAAGsI,MAAMtI;AAAAA,MAAO,CAACK,IAAIX,IAAI,GAAGW,IAAIL;AAAAA,IAAAA;AAAAA,EAAK,IAI1CsI;AACT;AC9BaI,MAAAA,gBAAgBxF,MAAAA,KAAK,SAAAJ,OAAA;AAAAK,QAAAA,IAAAC,uBAAA,EAAA,GAGhC;AAAA,IAAAuF;AAAAA,MAAmB7F,OACnB;AAAA,IAAA8F;AAAAA,IAAAC;AAAAA,IAAAvG;AAAAA,EAAAA,IAAsCgE,YACtCwC,GAAAA,eAAqBxG,QAAOtC,OAC5B+I,kBAAwBC,aAAOF,YAAY;AAACvF,MAAAA;AAAAJ,WAAA2F,gBAEcvF,KAAAA,OAAA;AAAA,IAAAyC,SAAA3G;AAAAA,IAAAW,OAEjDoI,YAAY/C,OAAOyD,YAAY,CAAC;AAAA,EAAC,IACxC3F,OAAA2F,cAAA3F,OAAAI,MAAAA,KAAAJ,EAAA,CAAA;AAHF,QAAA,CAAAQ,IAAAsF,QAAA,IAAqCC,MAAAA,SAAqB3F,EAGxD,GAHK;AAAA,IAAAyC;AAAAA,IAAAhG;AAAAA,EAAAA,IAAA2D;AAAgBC,MAAAA;AAAAT,WAAA0F,aAMrBjF,KAAAP,CAAA,WAAA;AACW,cAAA;AAAA,MAAAyC,MAAQ;AAAA,MAA6BzC;AAAAA,IAAAA,CAAS;AAAA,EAAC,GACzDF,OAAA0F,WAAA1F,OAAAS,MAAAA,KAAAT,EAAA,CAAA;AAHH,QAAAgG,eAAqBvF;AAKpBI,MAAAA;AAAAb,WAAA0F,aAGC7E,KAAAtE,CAAA,SAAA;AACW,cAAA;AAAA,MAAAoG,MAAQ;AAAA,MAA+BpG;AAAAA,IAAAA,CAAO;AAAA,EAAC,GACzDyD,OAAA0F,WAAA1F,OAAAa,MAAAA,KAAAb,EAAA,CAAA;AAHH,QAAAiG,iBAAuBpF;AAKtBI,MAAAA;AAAAjB,WAAA0F,aAGCzE,KAAAA,CAAAiF,QAAAC,WAAA;AACW,cAAA;AAAA,MAAAxD,MAAQ;AAAA,MAA6BpG,MAAEA;AAAAA,MAAIM,OAASsJ;AAAAA,IAAAA,CAAO;AAAA,EAAC,GACtEnG,OAAA0F,WAAA1F,OAAAiB,MAAAA,KAAAjB,EAAA,CAAA;AAHH,QAAAG,eAAqBc;AAKpB,MAAAE,IAAAiB;AAAApC,IAAAgG,CAAAA,MAAAA,gBAAAhG,EAAA,CAAA,MAAA6C,WAAA7C,EAAAG,EAAAA,MAAAA,gBAAAH,EAAA,EAAA,MAAAiG,kBAAAjG,UAAAnD,SAGQuF,KAAA;AAAA,IAAA4D;AAAAA,IAAAnD;AAAAA,IAAA1C;AAAAA,IAAA8F;AAAAA,IAAApJ;AAAAA,EAA4DmD,GAAAA,OAAAgG,cAAAhG,OAAA6C,SAAA7C,QAAAG,cAAAH,QAAAiG,gBAAAjG,QAAAnD,OAAAmD,QAAAoC,MAAAA,KAAApC,EAAA,EAAA,GAAAmB,KAA5DiB;AADT,QAAAgE,MAA+BjF;AAG9B,MAAAmB,IAAA+D;AAAArG,YAAAyF,WAICnD,KAAAA,MACEmD,QAAOrI,UAAAF,CAAA,QAAA;AACL4I,aAAQQ,CAAA,cAAA;AACNC,YAAAA,YACErJ,IAAGyF,SAAU,qBAAkB;AAAA,QAAAE,SAAA3G;AAAAA,QAAAW,OAAAV;AAAAA,MAAAA,IAE3B+I,aAAaoB,WAAWpJ,GAAG;AAAC,aAE9B8F,QAAQsD,WAAWC,SAAS,IACvBD,YAGFC;AAAAA,IAAAA,CACR;AAAA,EACF,CAAA,GACHF,MAACZ,OAAO,GAACzF,QAAAyF,SAAAzF,QAAAsC,IAAAtC,QAAAqG,OAAA/D,KAAAtC,EAAA,EAAA,GAAAqG,KAAArG,EAAA,EAAA,IAhBXwG,gBACElE,IAeA+D,EACF;AAAC,MAAAI,KAAAC;AAAA1G,IAAA0F,EAAAA,MAAAA,aAAA1F,UAAAnD,SAES6J,KAAAA,MAAA;AACRC,UAAAA,mBAAyB7B,YAAYjI,KAAK;AAEtC+I,oBAAegB,YAAaD,qBAC9Bf,gBAAegB,UAAWD,kBAE1BjB,UAAS;AAAA,MAAA/C,MACD;AAAA,MAA0B7E,KAC3B;AAAA,MAAOjB,OACL8J;AAAAA,IAAAA,CACR;AAAA,EAEFF,GAAAA,MAAA,CAACf,WAAW7I,KAAK,GAACmD,QAAA0F,WAAA1F,QAAAnD,OAAAmD,QAAAyG,KAAAzG,QAAA0G,OAAAD,MAAAzG,EAAA,EAAA,GAAA0G,KAAA1G,EAAA,EAAA,IAZrBwG,MAAAA,UAAUE,IAYPD,GAAkB;AAAC,MAAAI,KAAAC;AAAA9G,YAAA2F,gBAEZkB,MAAAA,MAAA;AACJjB,oBAAegB,YAAajB,iBAIhCC,gBAAegB,UAAWjB,cAE1BG,SAAQiB,CAAA,gBAAA;AACN,YAAAC,YAAkB/B,YAAY/C,OAAOyD,YAAY,CAAC,KAAO,CAAA;AAAA,aACrD3C,QAAQsD,YAASzJ,OAAQmK,SAAS,IAC7BV,cAAS;AAAA,QAAA,GAIbA;AAAAA,QAASzJ,OACLmK;AAAAA,MAAS;AAAA,IAAA,CAEnB;AAAA,EAAC,GACDF,OAACnB,YAAY,GAAC3F,QAAA2F,cAAA3F,QAAA6G,KAAA7G,QAAA8G,QAAAD,MAAA7G,EAAA,EAAA,GAAA8G,MAAA9G,EAAA,EAAA,IAlBjBwG,gBAAUK,KAkBPC,GAAc;AAACG,MAAAA;AAAA,SAAAjH,EAAAwF,EAAAA,MAAAA,YAAAxF,UAAAoG,OAEXa,MAAAnG,2BAAAA,IAAA,aAAA,UAAA,EAA8BsF,OAAAA,KAAMZ,SAAAA,CAAS,GAAwBxF,QAAAwF,UAAAxF,QAAAoG,KAAApG,QAAAiH,OAAAA,MAAAjH,EAAA,EAAA,GAArEiH;AAAqE,CAC7E;ACrGMC,SAAAA,WAAA3K,MAAAwG,cAAA3C,IAAA;AAAAJ,QAAAA,IAAAC,uBAAA,CAAA,GAGLkH,YAAA/G,OAAmBmB,SAAP,UAAZnB,IAEA;AAAA,IAAA4F;AAAAA,IAAAC;AAAAA,IAAApJ;AAAAA,MAA8C6C,SAAS;AAAC,MAAAc,IAAAC;AAAAT,SAAAA,EAAA+C,CAAAA,MAAAA,gBAAA/C,EAAA,CAAA,MAAAmH,aAAAnH,EAAAzD,CAAAA,MAAAA,QAAAyD,EAAA,CAAA,MAAAgG,gBAAAhG,SAAAiG,kBAE9CzF,KAAAA,OACRwF,aAAY;AAAA,IAAArD,MACJ;AAAA,IAASwE;AAAAA,IAAA5K;AAAAA,IAAAwG;AAAAA,EAIhB,CAAA,GAEYkD,MAAAA,eAAe1J,IAAI,IAC/BkE,KAAA,CAACsC,cAAcoE,WAAW5K,MAAMyJ,cAAcC,cAAc,GAACjG,OAAA+C,cAAA/C,OAAAmH,WAAAnH,OAAAzD,MAAAyD,OAAAgG,cAAAhG,OAAAiG,gBAAAjG,OAAAQ,IAAAR,OAAAS,OAAAD,KAAAR,EAAA,CAAA,GAAAS,KAAAT,EAAA,CAAA,IAThEwG,gBAAUhG,IASPC,EAA6D,GAEzD5D,MAAMN,IAAI,MAAAgF,SAAkBwB,eAAgBlG,MAAMN,IAAI;AAAa;AClBrE6K,SAAAA,UAAA7K,MAAAwG,cAAA3C,IAAA;AAAAJ,QAAAA,IAAAC,uBAAA,CAAA,GAGLkH,YAAA/G,OAAmBmB,SAAP,UAAZnB,IAEA;AAAA,IAAA4F;AAAAA,IAAAC;AAAAA,IAAApJ;AAAAA,MAA8C6C,SAAS;AAAC,MAAAc,IAAAC;AAAAT,SAAAA,EAAA+C,CAAAA,MAAAA,gBAAA/C,EAAA,CAAA,MAAAmH,aAAAnH,EAAAzD,CAAAA,MAAAA,QAAAyD,EAAA,CAAA,MAAAgG,gBAAAhG,SAAAiG,kBAE9CzF,KAAAA,OACRwF,aAAY;AAAA,IAAArD,MACJ;AAAA,IAAQwE;AAAAA,IAAA5K;AAAAA,IAAAwG;AAAAA,EAIf,CAAA,GAEYkD,MAAAA,eAAe1J,IAAI,IAC/BkE,KAAA,CAACsC,cAAcoE,WAAW5K,MAAMyJ,cAAcC,cAAc,GAACjG,OAAA+C,cAAA/C,OAAAmH,WAAAnH,OAAAzD,MAAAyD,OAAAgG,cAAAhG,OAAAiG,gBAAAjG,OAAAQ,IAAAR,OAAAS,OAAAD,KAAAR,EAAA,CAAA,GAAAS,KAAAT,EAAA,CAAA,IAThEwG,gBAAUhG,IASPC,EAA6D,GAEzD5D,MAAMN,IAAI,MAAAgF,SAAkBwB,eAAgBlG,MAAMN,IAAI;AAAY;ACjBpE,SAAA8K,UAAA9K,MAAAqF,SAAAmB,cAAA3C,IAAA;AAAAJ,QAAAA,IAAAC,uBAAA,CAAA,GAILkH,YAAA/G,OAAmBmB,SAAP,UAAZnB,IAEA;AAAA,IAAA4F;AAAAA,IAAAC;AAAAA,IAAApJ;AAAAA,MAA8C6C,SAAS;AAAC,MAAAc,IAAAC;AAAAT,SAAAA,SAAA+C,gBAAA/C,EAAAmH,CAAAA,MAAAA,aAAAnH,EAAAzD,CAAAA,MAAAA,QAAAyD,EAAA,CAAA,MAAA4B,WAAA5B,SAAAgG,gBAAAhG,EAAA,CAAA,MAAAiG,kBAE9CzF,KAAAA,OACRwF,aAAY;AAAA,IAAArD,MACJ;AAAA,IAAQwE;AAAAA,IAAA5K;AAAAA,IAAAqF;AAAAA,IAGEmB;AAAAA,EAEjB,CAAA,GAEYkD,MAAAA,eAAe1J,IAAI,IAC/BkE,KAAA,CAACsC,cAAcoE,WAAW5K,MAAMqF,SAASoE,cAAcC,cAAc,GAACjG,OAAA+C,cAAA/C,OAAAmH,WAAAnH,OAAAzD,MAAAyD,OAAA4B,SAAA5B,OAAAgG,cAAAhG,OAAAiG,gBAAAjG,OAAAQ,IAAAR,OAAAS,OAAAD,KAAAR,EAAA,CAAA,GAAAS,KAAAT,EAAA,CAAA,IAVzEwG,gBAAUhG,IAUPC,EAAsE,GAElE5D,MAAMN,IAAI,MAAAgF,SAAkBwB,eAAgBlG,MAAMN,IAAI;AAAO;ACrB/D+K,SAAAA,UAAA/K,MAAAwG,cAAA3C,IAAA;AAAAJ,QAAAA,IAAAC,uBAAA,CAAA,GAGLkH,YAAA/G,OAAmBmB,SAAP,UAAZnB,IAEA;AAAA,IAAA4F;AAAAA,IAAAC;AAAAA,IAAApJ;AAAAA,MAA8C6C,SAAS;AAAC,MAAAc,IAAAC;AAAAT,SAAAA,EAAA+C,CAAAA,MAAAA,gBAAA/C,EAAA,CAAA,MAAAmH,aAAAnH,EAAAzD,CAAAA,MAAAA,QAAAyD,EAAA,CAAA,MAAAgG,gBAAAhG,SAAAiG,kBAE9CzF,KAAAA,OACRwF,aAAY;AAAA,IAAArD,MACJ;AAAA,IAAQwE;AAAAA,IAAA5K;AAAAA,IAAAwG;AAAAA,EAIf,CAAA,GAEYkD,MAAAA,eAAe1J,IAAI,IAC/BkE,KAAA,CAACsC,cAAcoE,WAAW5K,MAAMyJ,cAAcC,cAAc,GAACjG,OAAA+C,cAAA/C,OAAAmH,WAAAnH,OAAAzD,MAAAyD,OAAAgG,cAAAhG,OAAAiG,gBAAAjG,OAAAQ,IAAAR,OAAAS,OAAAD,KAAAR,EAAA,CAAA,GAAAS,KAAAT,EAAA,CAAA,IAThEwG,gBAAUhG,IASPC,EAA6D,GAEzD5D,MAAMN,IAAI,MAAAgF,SAAkBwB,eAAgBlG,MAAMN,IAAI;AAAY;AClBpEgL,SAAAA,QAAAhL,MAAAwG,cAAA3C,IAAA;AAAAJ,QAAAA,IAAAC,uBAAA,CAAA,GAGLkH,YAAA/G,OAAmBmB,SAAP,UAAZnB,IAEA;AAAA,IAAA4F;AAAAA,IAAAC;AAAAA,IAAApJ;AAAAA,MAA8C6C,SAAS;AAAC,MAAAc,IAAAC;AAAAT,SAAAA,EAAA+C,CAAAA,MAAAA,gBAAA/C,EAAA,CAAA,MAAAmH,aAAAnH,EAAAzD,CAAAA,MAAAA,QAAAyD,EAAA,CAAA,MAAAgG,gBAAAhG,SAAAiG,kBAE9CzF,KAAAA,OACRwF,aAAY;AAAA,IAAArD,MACJ;AAAA,IAAMwE;AAAAA,IAAA5K;AAAAA,IAAAwG;AAAAA,EAIb,CAAA,GAEYkD,MAAAA,eAAe1J,IAAI,IAC/BkE,KAAA,CAACsC,cAAcoE,WAAW5K,MAAMyJ,cAAcC,cAAc,GAACjG,OAAA+C,cAAA/C,OAAAmH,WAAAnH,OAAAzD,MAAAyD,OAAAgG,cAAAhG,OAAAiG,gBAAAjG,OAAAQ,IAAAR,OAAAS,OAAAD,KAAAR,EAAA,CAAA,GAAAS,KAAAT,EAAA,CAAA,IAThEwG,gBAAUhG,IASPC,EAA6D,GAEzD5D,MAAMN,IAAI,MAAAgF,SAAkBwB,eAAgBlG,MAAMN,IAAI;AAAY;ACVpE,SAASiL,cAA8B;AACrC,SAAA;AAAA,IACLjL,MAAM;AAAA,IACNC,OAAO;AAAA,IACPiL,WAAW7E;AAAAA,IACX8E,UAAUnC;AAAAA,EACZ;AACF;ACOaoC,MAAAA,mBAAmB5H,MAAAA,KAAK,SAAAJ,OAAA;AAAAK,QAAAA,IAAAC,uBAAA,EAAA,GAGnC;AAAA,IAAAyF;AAAAA,IAAAF;AAAAA,IAAAC;AAAAA,IAAA3J;AAAAA,IAAA8L;AAAAA,IAAAC;AAAAA,IAAAvJ;AAAAA,IAAAa;AAAAA,IAAAC;AAAAA,IAAAC,UAAAe;AAAAA,IAAAd,MAAAkB;AAAAA,EAAA,IAYIb,OAFFN,WAAAe,OAAiBmB,SAAN,SAAXnB,IACAd,OAAAkB,OAAQe,aAARf,IAGF;AAAA,IAAAsH,SAAArH;AAAAA,IAAAsH,aAAAlH;AAAAA,IAAAmH,UAAA/G;AAAAA,IAAA5C;AAAAA,IAAA7B,OAAA2E;AAAAA,EAAAA,IAMIrF,QALOmM,cAAAxH,OAAyBc,SAAArF,cAAzBuE,IACTsH,cAAAlH,OAAyBU,SAAArF,cAAzB2E,IACAmH,WAAA/G,OAAoBM,SAAT,YAAXN,IAEAzE,QAAA2E,OAAkBI,SAAV,aAARJ;AAAkB,MAAA,CAGfhC;AAAOU,UAAAA,IAAAA,MACM,4BAA4B;AAAA,MAAAuC,IAAAE;AAAAtC,IAAA,CAAA,MAAAK,OAAAC,IAAA,2BAAA,KAGGgC,KAAAkF,YAAY,GAACxH,OAAAsC,MAAAA,KAAAtC,EAAA,CAAA;AAAAqG,MAAAA;AAAArG,WAAAiI,eAAd5B,KAAA,CAAC/D,IAAa,GAAK2F,WAAW,GAACjI,OAAAiI,aAAAjI,OAAAqG,MAAAA,KAAArG,EAAA,CAAA,GAAAoC,KAA/BiE;AAAhD,QAAAyB,UAAkC1F;AAA6D,MAAAsE,IAAAD;AAAAzG,IAAA1B,CAAAA,MAAAA,QAAA0B,SAAA3B,UAC1DoI,MAAArI,gBAAgBC,QAAQC,IAAI,GAAC0B,OAAA1B,MAAA0B,OAAA3B,QAAA2B,OAAAyG,OAAAA,MAAAzG,EAAA,CAAA,GAAA0G,KAA7BD;AAArC,QAAA;AAAA,IAAAxK;AAAAA,IAAA6C;AAAAA,EAAAA,IAAuB4H;AAEvB,MAAAwB,kBAAsB1C;AAAQ,MAAAxF,EAAA8H,CAAAA,MAAAA,WAAA9H,SAAAkI,iBAAA;AAAA,eACzBC,UAAgBL;AAAO,UACtBK,OAAMT,UAAA;AACR,cAAAU,WAAiBD,OAAMT;AACvBQ,yDACGA,UAAkBA,EAAAA,SAAAC,OAAMvG,WAAAzF,wBAA2C,iBAAA;AAAA,MAAA;WADvD2L,SAAA9H,OAAAkI,iBAAAlI,OAAAkI;AAAAA,EAAA;AAAAA,sBAAAlI,EAAA,CAAA;AAAA6G,MAAAA;AAAA7G,IAAA,CAAA,MAAA0F,aAAA1F,EAAA,EAAA,MAAAyF,WAAAzF,EAAA,EAAA,MAAA+H,eAAA/H,EAAA,EAAA,MAAA4H,cAAA5H,EAAA,EAAA,MAAAgI,YAAAhI,EAAA,EAAA,MAAA6H,UAAA7H,EAAA,EAAA,MAAA1B,QAAA0B,EAAAb,EAAAA,MAAAA,WAAAa,EAAA8H,EAAAA,MAAAA,WAAA9H,EAAAZ,EAAAA,MAAAA,UAAAY,EAAA/D,EAAAA,MAAAA,SAAA+D,EAAA3B,EAAAA,MAAAA,UAAA2B,EAAAlB,EAAAA,MAAAA,SAAAkB,EAAAxD,EAAAA,MAAAA,SAAAwD,EAAAX,EAAAA,MAAAA,YAAAW,UAAAV,QAQRuH,MAAA;AAAA,IAAAiB;AAAAA,IAAApC;AAAAA,IAAAD;AAAAA,IAAAsC;AAAAA,IAAAH;AAAAA,IAAAI;AAAAA,IAAAH;AAAAA,IAAAvJ;AAAAA,IAAAa;AAAAA,IAAAC;AAAAA,IAAAnD;AAAAA,IAAAoC;AAAAA,IAAAS;AAAAA,IAAAtC;AAAAA,IAAA6C;AAAAA,IAAAC;AAAAA,EAAAA,GAiBNU,OAAA0F,WAAA1F,QAAAyF,SAAAzF,QAAA+H,aAAA/H,QAAA4H,YAAA5H,QAAAgI,UAAAhI,QAAA6H,QAAA7H,QAAA1B,MAAA0B,QAAAb,SAAAa,QAAA8H,SAAA9H,QAAAZ,QAAAY,QAAA/D,OAAA+D,QAAA3B,QAAA2B,QAAAlB,OAAAkB,QAAAxD,OAAAwD,QAAAX,UAAAW,QAAAV,MAAAU,QAAA6G,OAAAA,MAAA7G,EAAA,EAAA;AAAA8G,MAAAA;AAAA,SAAA9G,EAAA6G,EAAAA,MAAAA,OAAA7G,UAAAkI,mBAlBHpB,MAAAhG,2BAAAA,IAAA,gBAAA,UAAA,EACS,OAAA+F,KAmBQ,UAAA,gBACjB,CAAA,GAA2B7G,QAAA6G,KAAA7G,QAAAkI,iBAAAlI,QAAA8G,OAAAA,MAAA9G,EAAA,EAAA,GArB3B8G;AAqB2B,CAE9B;AAEDa,iBAAiBU,cAAc;AC3FfC,SAAAA,gBAAgBnD,OAAsBjI,KAAiC;AACrF,MAAIA,IAAIyF,SAAS;AACR,WAAA;AAAA,MAAC,GAAGwC;AAAAA,MAAOyC,YAAY;AAAA,IAAI;AAGpC,MAAI1K,IAAIyF,SAAS;AACf,WAAIK,QAAQmC,OAAOjI,IAAIL,KAAK,IACnBsI,QAGFjI,IAAIL;AAGb,MAAIK,IAAIyF,SAAS;AACf,WAAIwC,MAAM7F,SAASpC,IAAIL,QAAcsI,QAE9B;AAAA,MAAC,GAAGA;AAAAA,MAAO7F,MAAMpC,IAAIL;AAAAA,IAAK;AAGnC,MAAIK,IAAIyF,SAAS;AACf,WAAIwC,MAAM9F,aAAanC,IAAIL,QAAcsI,QAElC;AAAA,MAAC,GAAGA;AAAAA,MAAO9F,UAAUnC,IAAIL;AAAAA,IAAK;AAGvC,MAAIK,IAAIyF,SAAS;AACR,WAAA;AAAA,MAAC,GAAGwC;AAAAA,MAAO/F,QAAQ+F,MAAM/F,WAAW,UAAU,SAAS;AAAA,IAAO;AAGvE,MAAIlC,IAAIyF,SAAS;AACf,WAAIwC,MAAM/F,WAAWlC,IAAIL,QAAcsI,QAEhC;AAAA,MAAC,GAAGA;AAAAA,MAAO/F,QAAQlC,IAAIL;AAAAA,IAAK;AAGrC,MAAIK,IAAIyF,SAAS;AACf,WAAIwC,MAAM7G,SAASpB,IAAIL,QAAcsI,QAE9B;AAAA,MAAC,GAAGA;AAAAA,MAAO7G,MAAMpB,IAAIL;AAAAA,IAAK;AAGnC,MAAIK,IAAIyF,SAAS;AACf,WAAIK,QAAQmC,MAAMhG,SAASjC,IAAIL,KAAK,IAC3BsI,QAGF;AAAA,MAAC,GAAGA;AAAAA,MAAOhG,SAASjC,IAAIL;AAAAA,IAAK;AAGlCK,MAAAA,IAAIyF,SAAS,4BAA4B;AAC3C,UAAMxD,UAAU;AAAA,MAAC,GAAGgG,MAAMhG;AAAAA,MAAS,CAACjC,IAAIY,GAAG,GAAGZ,IAAIL;AAAAA,IAAK;AAEvD,WAAImG,QAAQmC,MAAMhG,SAASA,OAAO,IACzBgG,QAGF;AAAA,MAAC,GAAGA;AAAAA,MAAOhG;AAAAA,IAAO;AAAA,EAAA;AAGpBgG,SAAAA;AACT;AChEA,MAAMoD,aAAa,MAAM;AAEnB,MAAA;AACF,WAAOC,QAAQC,IAAIF;AAAAA,EAAAA,QACT;AACV;AAAA,EAAA;AAEJ,GAEMG,GAAAA,SAAS,kCACTC,oBAAoB,YACpBC,oBAAoB;AAGnB,SAASC,YAAYC,OAAuB;AAC7CC,MAAAA,MAAMC,mBAAmBF,KAAK;AAIlC,SAFAC,MAAMD,MAAMG,QAAQP,QAAQ,EAAE,EAAEO,QAAQN,mBAAmB,GAAG,EAAEM,QAAQL,mBAAmB,EAAE,GAEzFL,YAAkBW,gBAAgBH,KAAKR,YAAY,GAAG,IAEnDQ;AACT;AAEA,SAASG,gBAAgBzL,KAAa0L,UAAkB;AAChDC,QAAAA,KAAK,IAAIC,OAAOF,SAASF,QAAQ,OAAO,KAAK,GAAG,GAAG;AAElDxL,SAAAA,IAAIwL,QAAQG,IAAI,EAAE;AAC3B;ACpBaE,MAAAA,mBAAiBvJ,WAAK,WAAA;AAAAC,QAAAA,IAAAC,uBAAA,EAAA,GACjC;AAAA,IAAAnB;AAAAA,MAAgBqE,YAAY;AAAC/C,MAAAA;AAAAJ,IAAA,CAAA,MAAAK,OAAAC,IAAA,2BAAA,KACgEF,KAAA;AAAA,IAAAmJ,OAAA;AAAA,IAAAC,WAAA;AAAA,EAAA,GAG5FxJ,OAAAI,MAAAA,KAAAJ,EAAA,CAAA;AAHD,QAAA,CAAAmF,OAAAW,QAAA,IAA0BC,MAAAA,SAAmE3F,EAG5F;AAACI,MAAAA;AAAAR,IAAA,CAAA,MAAAK,OAAAC,IAAA,2BAAA,KAGAE,KAAAC,CAAAA,QAAA;AAAC,UAAA;AAAA,MAAA8I;AAAAA,MAAAE,MAAAD;AAAAA,IAAAA,IAAA/I;AACS,aAAA;AAAA,MAAA8I;AAAAA,MAAAC;AAAAA,IAAAA,CAAmB;AAAA,EAAA,GAC5BxJ,OAAAQ,MAAAA,KAAAR,EAAA,CAAA;AAHH,QAAA0J,aAAmBlJ;AAKlBC,MAAAA;AAAAT,IAAA,CAAA,MAAAK,OAAAC,IAAA,2BAAA,KAE+BG,KAAAA,MAAA;AACtB,aAAA;AAAA,MAAA8I,OAAA;AAAA,MAAAC,WAAA;AAAA,IAAA,CAA+B;AAAA,EAAA,GACxCxJ,OAAAS,MAAAA,KAAAT,EAAA,CAAA;AAFD,QAAA2J,cAAoBlJ;AAEd,MAAA,CAED3B,OAAK;AAAA+B,QAAAA;AAAA,WAAAb,EAAA,CAAA,MAAAK,OAAAC,IAAA,2BAAA,KACDO,MAAAC,+BAAA8I,WAAAA,UAAA,CAAA,CAAA,GAAK5J,OAAAa,OAAAA,MAAAb,EAAA,CAAA,GAALa;AAAAA,EAAAA;AAAK,MAGVsE,MAAKoE,OAAA;AAAA1I,QAAAA;AAAAb,WAAAA,EAAAmF,CAAAA,MAAAA,MAAAoE,SAAAvJ,EAAA,CAAA,MAAAmF,MAAAqE,aAEL3I,qCAACgJ,GAAAA,MAAQ,EAAA,IAAA,QAAc,QAAA,QAAgB,UAAA,QAAY,MAAA,YACjD,UAAC/I,2BAAA,IAAA,aAAA,EAAmB,OAAAqE,MAAKoE,OAAmB,WAAApE,MAAKqE,WAAqBG,qBAAW,CAAA,GACnF,GAAO3J,EAAA,CAAA,IAAAmF,MAAAoE,OAAAvJ,EAAA,CAAA,IAAAmF,MAAAqE,WAAAxJ,OAAAa,OAAAA,MAAAb,EAAA,CAAA,GAFPa;AAAAA,EAAAA;AAEOA,MAAAA;AAAAb,IAAA,CAAA,MAAAlB,MAAAtC,SAMPqE,KAA6BC,+BAAA,MAAA,EAAzB,QAAK,IAAGhC,UAAKtC,MAAAA,MAAO,CAAA,GAAKwD,EAAA,CAAA,IAAAlB,MAAAtC,OAAAwD,OAAAa,MAAAA,KAAAb,EAAA,CAAA;AAAAiB,MAAAA;AAAAjB,WAAAlB,SAETmC,oCAAC,iBAAqBnC,OAAS,GAAAkB,OAAAlB,OAAAkB,QAAAiB,MAAAA,KAAAjB,EAAA,EAAA;AAAAmB,MAAAA;AAAAnB,IAAA,EAAA,MAAAlB,MAAAgL,aAEV3I,KAAA4I,MAAAA,cAAcjL,MAAKgL,SAAU,GAAC9J,EAAA,EAAA,IAAAlB,MAAAgL,WAAA9J,QAAAmB,MAAAA,KAAAnB,EAAA,EAAA;AAAAoC,MAAAA;AAAApC,YAAAmB,MADrEiB,KAAAtB,2BAAAA,IAAC+I,GAAAA,MAAQ,EAAA,IAAA,QAAc,QAAA,QACrB,UAAA/I,2BAAA,IAACkJ,GAAuBN,eAAAA,EAAAA,SAAAA,YAAavI,UAAAA,GAA+B,CAAA,EACtE,CAAA,GAAOnB,QAAAmB,IAAAnB,QAAAoC,MAAAA,KAAApC,EAAA,EAAA;AAAAsC,MAAAA;AAAAtC,IAAAiB,EAAAA,MAAAA,MAAAjB,UAAAoC,MAHTE,KAACxB,2BAAA,IAAAmJ,MAAmB,UAAA,EAAA,UAAAhJ,IAClBmB,UAAAA,IAGF,GAAWpC,QAAAiB,IAAAjB,QAAAoC,IAAApC,QAAAsC,MAAAA,KAAAtC,EAAA,EAAA;AAAAqG,MAAAA;AAAArG,SAAAA,EAAAa,EAAAA,MAAAA,MAAAb,UAAAsC,MAPb+D,KACExF,2BAAAA,KAAAA,WAAAA,UAAAA,EAAAA,UAAAA;AAAAA,IAAAA;AAAAA,IAEAyB;AAAAA,EAAAA,EAIW,CAAA,GACVtC,QAAAa,IAAAb,QAAAsC,IAAAtC,QAAAqG,MAAAA,KAAArG,EAAA,EAAA,GARHqG;AAQG,CAEN,GAEK6D,gBAAgBnK,MAAAA,KAAK,SAAAJ,OAAA;AAAAK,QAAAA,IAAAC,uBAAA,CAAA,GACzB;AAAA,IAAAnB;AAAAA,EAAAA,IAAgBa;AAAKS,MAAAA;AAAAJ,IAAA,CAAA,MAAAlB,MAAAtC,SAIjB4D,2CAAI,EAAA,QAAK,IAAE,UAAA;AAAA,IAAA;AAAA,IACDU,2BAAAA,IAAA,MAAKhC,EAAAA,UAAAA,MAAKtC,MAAO,CAAA;AAAA,IAAK;AAAA,EAAA,EAAA,CAChC,GAAKwD,EAAA,CAAA,IAAAlB,MAAAtC,OAAAwD,OAAAI,MAAAA,KAAAJ,EAAA,CAAA;AAAAQ,MAAAA;AAAAR,IAAA,CAAA,MAAAK,OAAAC,IAAA,2BAAA,KAELE,KAACM,2BAAA,IAAAO,GAAA,MAAA,EAAW,OAAA,UAAY,IAAA,QAAc,QAAA,QAAe,SAAA,UACnD,UAAAP,2BAAA,IAACqJ,GAAQ,SAAA,EAAA,OAAI,GACf,CAAA,EAAA,CAAA,GAAOnK,OAAAQ,MAAAA,KAAAR,EAAA,CAAA;AAAAS,MAAAA;AAAA,SAAAT,SAAAI,MAPTK,KACEL,gCAAAA,WAAAA,UAAAA,EAAAA,UAAAA;AAAAA,IAAAA;AAAAA,IAIAI;AAAAA,EAAAA,EAAAA,CAEO,GACNR,OAAAI,IAAAJ,OAAAS,MAAAA,KAAAT,EAAA,CAAA,GARHS;AAQG,CAEN,GAEK2J,cAAcrK,WAAK,SAAAJ,OAAA;AAAAK,QAAAA,IAAAC,uBAAA,EAAA,GAKvB;AAAA,IAAAsJ;AAAAA,IAAAC;AAAAA,IAAAa;AAAAA,EAAAA,IAAoC1K;AAAKS,MAAAA;AAAAJ,IAAA,CAAA,MAAAK,OAAAC,IAAA,2BAAA,KAKZF,KAAA,CAAA,GAAA,GAAA,CAAA,GAASJ,OAAAI,MAAAA,KAAAJ,EAAA,CAAA;AAAAQ,MAAAA;AAAAR,IAAA,CAAA,MAAAuJ,MAAAe,WAAhC9J,KAAAM,2BAAAA,IAACyJ,GAAW,SAAA,EAAA,IAAA,MAAW,MAAAnK,IACpBmJ,UAAAA,MAAKe,QACR,CAAA,GAAUtK,EAAA,CAAA,IAAAuJ,MAAAe,SAAAtK,OAAAQ,MAAAA,KAAAR,EAAA,CAAA;AAAAS,MAAAA;AAAAT,WAAAqK,WACV5J,oCAACM,GAAAA,KACC,EAAA,UAAAD,2BAAAA,IAAC0J,GAAAA,QAAgBH,EAAAA,SAAM,SAAQ,MAAA,SACjC,EAAA,CAAA,GAAMrK,OAAAqK,SAAArK,OAAAS,MAAAA,KAAAT,EAAA,CAAA;AAAAa,MAAAA;AAAAb,IAAA,CAAA,MAAAuJ,MAAAT,SACLjI,KAAA0I,MAAKT,SAAWhI,2BAAAA,IAAA2J,GAAAA,MAAA,EAAW,SAAI5B,UAAYU,YAAAA,MAAKT,KAAM,EAAA,CAAE,GAAO9I,EAAA,CAAA,IAAAuJ,MAAAT,OAAA9I,OAAAa,MAAAA,KAAAb,EAAA,CAAA;AAAAiB,MAAAA;AAAAjB,WAAAwJ,aAC/DvI,KAAAuI,WAASkB,kBACP5J,2BAAA,IAAA2J,GAAA,MAAA,EAAW,MAAA,GAAsB,UAAG5B,qBAAAA,YAAYW,UAASkB,cAAe,EAAE,CAAA,GAC5E1K,OAAAwJ,WAAAxJ,OAAAiB,MAAAA,KAAAjB,EAAA,CAAA;AAAAmB,MAAAA;AAAAnB,SAAAA,EAAA,CAAA,MAAAQ,MAAAR,EAAAS,EAAAA,MAAAA,MAAAT,EAAAa,EAAAA,MAAAA,MAAAb,UAAAiB,MAXLE,KAACL,2BAAA,IAAAC,QAAA,EAAa,SAAA,GACZ,UAAAK,2BAAAA,KAACuJ,GAAAA,OAAa,EAAA,UACZnK,UAAAA;AAAAA,IAAAA;AAAAA,IAGAC;AAAAA,IAGCI;AAAAA,IACAI;AAAAA,EAGH,EAAA,CAAA,EACF,CAAA,GAAMjB,OAAAQ,IAAAR,QAAAS,IAAAT,QAAAa,IAAAb,QAAAiB,IAAAjB,QAAAmB,MAAAA,KAAAnB,EAAA,EAAA,GAbNmB;AAaM,CAET;ACzFM,SAASyJ,QAAQ/N,OAAoC;AACnDgO,SAAAA,MAAMD,QAAQ/N,KAAK;AAC5B;ACFO,SAASiO,SAASjO,OAAkD;AAClE8B,SAAAA,CAAAA,CAAQ9B,SAAU,OAAOA,SAAU,YAAY,CAACgO,MAAMD,QAAQ/N,KAAK;AAC5E;ACOO,SAASkO,uBAA+C;AACvDC,QAAAA,mCAAmBhO,IAAgC;AAErDiO,MAAAA,YAA2B,IAC3BC,gBAAuC;AAE3C,WAASC,SAAS;AACZD,qBACFE,cAAcF,aAAa,GAG7BA,gBAAgBG,WAAW,MAAM;AAC/B/H,aAAOgI,OAAOC,YAAYN,SAAS,GACnCA,YAAY,CAAA,GACZC,gBAAgB;AAAA,OACf,CAAC;AAAA,EAAA;AAGN,WAASM,eAAe9K,OAA8B;AACpD,UAAM+K,OAAO/K,MAAMgL;AAEnB,QAAId,QAAQa,IAAI;AACd,iBAAWvO,OAAOuO;AACZX,YAAAA,SAAS5N,GAAG,KAAK,OAAOA,IAAIyF,QAAS,YAAYzF,IAAIyF,KAAKgJ,WAAW,WAAW;AAClF,qBAAWxO,cAAc6N;AACvB7N,uBAAWD,GAA6B;AAAA;AAAA,EAAA;AAOlD,WAAS0O,SAAS;AACTC,WAAAA,iBAAiB,WAAWL,gBAAgB,EAAK;AAAA,EAAA;AAG1D,WAASM,WAAW;AACXC,WAAAA,oBAAoB,WAAWP,gBAAgB,EAAK;AAAA,EAAA;AAGtD,SAAA;AAAA,IACLlB,SAAS;AAAA,MACPrN,QAAQC,KAAkB;AACd8O,kBAAAA,KAAK9O,GAAG,GAClBiO,OAAO;AAAA,MACT;AAAA,MACA/N,UAAUD,YAAY;AACPE,eAAAA,aAAAA,IAAIF,UAAU,GAEvB6N,aAAaiB,SAAS,KACxBL,OAAAA,GAGK,MAAM;AACXZ,uBAAa1N,OAAOH,UAAU,GAE1B6N,aAAaiB,SAAS,KACxBH,SAAS;AAAA,QAEb;AAAA,MAAA;AAAA,IACF;AAAA,EAEJ;AACF;ACjDA,SAASI,yBAAsC;AAC7C,QAAMC,QAAQ,OAAO7I,SAAW,MAAc,CAAK/F,IAAAA,GAAGC,MAAM8F,OAAO8I,SAASC,OAAO5N,MAAM,CAAC,CAAC,GACrF;AAAA,IAACH,OAAO;AAAA,IAAKc;AAAAA,IAAQC;AAAAA,IAAUC;AAAAA,IAAM,GAAGH;AAAAA,EAAAA,IAAWgN;AAElD,SAAA;AAAA,IACLvE,YAAY;AAAA,IACZtJ;AAAAA,IACAa;AAAAA,IACAC,QAAQ,OAAOA,UAAW,WAAYA,SAAiC;AAAA,IACvEC,UAAU,OAAOA,YAAa,WAAWA,WAAW;AAAA,IACpDC,MAAM,OAAOA,QAAS,WAAWkC,OAAOlC,IAAI,IAAI;AAAA,EAClD;AACF;AAGagN,MAAAA,gBAAgBvM,MAAAA,KAAK,SAAAJ,OAAA;AAAAK,QAAAA,IAAAC,uBAAA,EAAA,GAGhC;AAAA,IAAAnE;AAAAA,IAAAyQ;AAAAA,EAAAA,IAA4B5M;AAAK,MAAAS,IAAAI;AAAAR,IAAA,CAAA,MAAAK,OAAAC,IAAA,2BAAA,KACNE,KAAAuK,qBAAAA,GAAsB/K,OAAAQ,MAAAA,KAAAR,EAAA,CAAA,GAAAI,KAAtBI;AAA3B,QAAAgM,OAAapM;AAAyC,MAAAK,IAAAI;AAAAb,IAAA,CAAA,MAAAK,OAAAC,IAAA,2BAAA,KACxBO,KAAA/D,aAAAA,GAA2BkD,OAAAa,MAAAA,KAAAb,EAAA,CAAA,GAAAS,KAA3BI;AAA9B,QAAA4E,UAAgBhF,IAChB,CAAAgM,iBAAAC,kBAAA,IAA8C3G,MAAAA,aAAoC,GAClF,CAAA4G,eAAAC,gBAAA,IAA0C7G,MAAAA,aAAoC;AAAC9E,MAAAA;AAAAjB,IAAA,CAAA,MAAAK,OAAAC,IAAA,2BAAA,KAI7EW,KAAA/D,CAAA,QAAA;AAEEuI,YAAOxI,QAASC,GAAG,GAGnBsP,KAAIlC,QAAArN,QAAiBC,GAAG;AAAA,EAAA,GACzB8C,OAAAiB,MAAAA,KAAAjB,EAAA,CAAA;AAPH0F,QAAAA,YAAkBzE,IAWlB,CAAAE,IAAA2E,QAAA,IAAwEC,MAAAA,SAAA5D,OAExE,GAFO;AAAA,IAAAyF;AAAAA,IAAAtJ;AAAAA,IAAAa;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,EAAAA,IAAA6B;AAAmD,MAAAiB,IAAAE;AAAAtC,IAAA,CAAA,MAAAK,OAAAC,IAAA,2BAAA,KAKhD8B,KAAAA,MAAMqD,QAAOrI,UAAAyP,CAAAA,UAAoB/G,SAAQT,CAAQiD,MAAAA,gBAAgBjD,GAAGnI,KAAG,CAAC,CAAC,GAAGoF,MAACmD,OAAO,GAACzF,OAAAoC,IAAApC,OAAAsC,OAAAF,KAAApC,EAAA,CAAA,GAAAsC,KAAAtC,EAAA,CAAA,IAA/FwG,MAAAA,UAAUpE,IAA4EE,EAAS;AAAC,MAAA+D,IAAAK;AAAA1G,IAAA,CAAA,MAAAK,OAAAC,IAAA,2BAAA,KAGtF+F,KAAAA,MAAMmG,KAAIlC,QAAAlN,UAAmBqI,QAAOxI,OAAQ,GAAGyJ,KAAA,CAACjB,SAAS+G,IAAI,GAACxM,OAAAqG,IAAArG,OAAA0G,OAAAL,KAAArG,EAAA,CAAA,GAAA0G,KAAA1G,EAAA,CAAA,IAAxEwG,MAAAA,UAAUH,IAA+CK,EAAe;AAAC,MAAAD,KAAAI;AAAA7G,IAAAZ,CAAAA,MAAAA,UAAAY,SAAAuM,aAG/D9F,MAAAA,MAAM8F,UAAUnN,MAAM,GAAGyH,MAAA,CAAC0F,WAAWnN,MAAM,GAACY,OAAAZ,QAAAY,OAAAuM,WAAAvM,OAAAyG,KAAAzG,QAAA6G,QAAAJ,MAAAzG,EAAA,CAAA,GAAA6G,MAAA7G,EAAA,EAAA,IAAtDwG,MAAAA,UAAUC,KAAyBI,GAAmB;AAAC,MAAAC,KAAAG;AAAAjH,IAAA,EAAA,MAAAK,OAAAC,IAAA,2BAAA,KAG7CwG,MAAAA,MAAMpB,UAAS;AAAA,IAAA/C,MAAQ;AAAA,EAAA,CAAsB,GAAGsE,OAACvB,SAAS,GAAC1F,QAAA8G,KAAA9G,QAAAiH,QAAAH,MAAA9G,EAAA,EAAA,GAAAiH,MAAAjH,EAAA,EAAA,IAArEwG,MAAAA,UAAUM,KAAgDG,GAAW;AAAC6F,MAAAA;AAAA9M,IAAA,EAAA,MAAAK,OAAAC,IAAA,2BAAA,KAkB5DwM,MAAC1L,2BAAA,KAAAyI,GAAA,MAAA,EAAY,QAAA,QAAY6C,KAAAA,oBACvB,UAAA;AAAA,IAAA5L,2BAAA,IAACwI,kBACD,EAAA;AAAA,IAAAxI,2BAAA,IAAA,OAAA,EAAiB,eAAA,IAAQ8L,KAAAA,iBAAgB,CAAA;AAAA,EAAA,EAC3C,CAAA,GAAO5M,QAAA8M,OAAAA,MAAA9M,EAAA,EAAA;AAAA+M,MAAAA;AAAA/M,IAAAlE,EAAAA,MAAAA,UAAAkE,EAAA4H,EAAAA,MAAAA,cAAA5H,EAAA1B,EAAAA,MAAAA,QAAA0B,UAAAb,WAAAa,EAAA,EAAA,MAAAZ,UAAAY,EAAA,EAAA,MAAAX,YAAAW,EAAA,EAAA,MAAAV,QAfTyN,MAAAjM,2BAAA,IAAC,oBACY4E,WACH5J,QACC2J,SACGmC,YACL,QAAA,SACDtJ,MACGa,SACDC,QACEC,UACJC,MAENwN,UAIF,IAAA,CAAA,GAAmB9M,QAAAlE,QAAAkE,QAAA4H,YAAA5H,QAAA1B,MAAA0B,QAAAb,SAAAa,QAAAZ,QAAAY,QAAAX,UAAAW,QAAAV,MAAAU,QAAA+M,OAAAA,MAAA/M,EAAA,EAAA;AAAAgN,MAAAA;AAAAhN,IAAA2M,EAAAA,MAAAA,iBAAA3M,UAAA+M,OAjBrBC,MAAClM,2BAAA,IAAAmM,GAAwBN,gBAAAA,EAAAA,SAAAA,eACvBI,UAAAA,KAiBF,GAAiB/M,QAAA2M,eAAA3M,QAAA+M,KAAA/M,QAAAgN,OAAAA,MAAAhN,EAAA,EAAA;AAAAkN,MAAAA;AAAA,SAAAlN,EAAAyM,EAAAA,MAAAA,mBAAAzM,UAAAgN,OApBrBE,MAACpM,2BAAAA,IAAAqM,GAAAA,eAAA,EACC,UAACrM,2BAAAA,IAAAsM,GAAAA,yBAAA,EAAiCX,SAAAA,iBAChCO,UAAAA,IAmBF,CAAA,EACF,CAAA,GAAgBhN,QAAAyM,iBAAAzM,QAAAgN,KAAAhN,QAAAkN,OAAAA,MAAAlN,EAAA,EAAA,GAtBhBkN;AAsBgB,CAEnB;AA9DiC,SAAA/K,UAAA;AAAA,SAsBxB+J,uBAAqB;AAAC;AClDhC,SAASmB,kBAAkBC,KAA6C;AACtE,QAAMjB,SAAS9O,GAAGQ,UAAUuP,IAAInB,SAAS,CAAA,CAAE;AAEpC,SAAA,GAAGmB,IAAIhP,IAAI,GAAG+N,SAAS,IAAIA,MAAM,KAAK,EAAE;AACjD;AAEA,SAASkB,sBAAsD;AACtD,SAAA;AAAA,IACLjP,MAAM8N,SAASoB;AAAAA,IACfrB,OAAO5O,GAAGC,MAAM4O,SAASC,OAAOoB,OAAO,CAAC,CAAC;AAAA,EAC3C;AACF;AAGO,SAASC,sBAA6C;AACrD1C,QAAAA,mCAAmBhO,IAA8C;AAEvE,WAAS2Q,kBAAkB;AACN,uBAAA;AAAA,MAAChL,MAAM;AAAA,MAAO,GAAG4K,oBAAoB;AAAA,IAAA,CAAE;AAAA,EAAA;AAG5D,WAASK,mBAAmBN,KAAuB;AACjD,eAAWnQ,cAAc6N;AACvB7N,iBAAWmQ,GAAG;AAAA,EAAA;AAIlB,WAAS1B,SAAS;AACTC,WAAAA,iBAAiB,YAAY8B,eAAe;AAAA,EAAA;AAGrD,WAAS7B,WAAW;AACXC,WAAAA,oBAAoB,YAAY4B,eAAe;AAAA,EAAA;AAGjD,SAAA;AAAA,IACLE,MAAM;AACJ,aAAON,oBAAoB;AAAA,IAC7B;AAAA,IACAvB,KAAK8B,cAAc;AACVC,aAAAA,QAAQC,UAAU,MAAMC,SAASzR,OAAO6Q,kBAAkBS,YAAY,CAAC,GAC9EF,mBAAmB;AAAA,QAACjL,MAAM;AAAA,QAAQ,GAAGmL;AAAAA,MAAAA,CAAa;AAAA,IACpD;AAAA,IACA7E,QAAQ6E,cAAc;AACbC,aAAAA,QAAQG,aAAa,MAAMD,SAASzR,OAAO6Q,kBAAkBS,YAAY,CAAC,GACjFF,mBAAmB;AAAA,QAACjL,MAAM;AAAA,QAAW,GAAGmL;AAAAA,MAAAA,CAAa;AAAA,IACvD;AAAA,IACA1Q,UAAUA,WAAqD;AAChDC,aAAAA,aAAAA,IAAID,SAAS,GAEtB4N,aAAaiB,SAAS,KAAGL,OAAAA,GAEtB,MAAM;AACXZ,qBAAa1N,OAAOF,SAAS,GAEzB4N,aAAaiB,SAAS,KAAGH,SAAS;AAAA,MACxC;AAAA,IAAA;AAAA,EAEJ;AACF;ACpEO,MAAMqC,cAAcC,OAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,wBAoBH,CAAC;AAAA,EAACC;AAAK,MAAMA,MAAMC,OAAOC,MAAMC,KAAKC,EAAE;AAAA;AAAA,GChBzDC,UAAU3O,MAAK4O,KAAAA,GAAG,GAAA,GAElBC,SAAOC,gBAAAA,QAAOhF,GAAAA,IAAI;AAAA;AAAA;AAAA,kCAGU,CAAC;AAAA,EAACwE;AAAK,MAAMA,MAAMC,OAAOQ,MAAM,CAAC,IAAI,CAAC;AAAA;AAAA;AAAA,GAK3DC,kBAAkBhP,MAAAA,KAAK,SAAAJ,OAAA;AAAAK,QAAAA,IAAAC,uBAAA,EAAA,GAKlC;AAAA,IAAA+O;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,EAAAA,IAA0CvP;AAAK,MAAAS,IAAAI;AAAAR,IAAA,CAAA,MAAAK,OAAAC,IAAA,2BAAA,KAEEE,KAAA;AAAA,IAAA2O,MAAO;AAAA,IAAMC,UAAY;AAAA,IAAQC,KAAA;AAAA,EAAA,GAASrP,OAAAQ,MAAAA,KAAAR,EAAA,CAAA,GAAAI,KAA1CI;AAAjD,QAAA8O,aAAkClP;AAA+D,MAAAK,IAAAI;AAAAb,MAAAA,EAAAgP,CAAAA,MAAAA,gBAAAhP,SAAAiP,eAAAjP,EAAA,CAAA,MAAAkP,MAAA;AAAAjO,QAAAA;AAAAjB,MAAAgP,CAAAA,MAAAA,gBAAAhP,SAAAiP,eAIpFhO,MAAAsO,CACP,QAAAzO,2BAAA,IAAC,kBAEcmO,EAAAA,aACH,UAAAM,IAAGC,OAAQR,cAChBO,IAAAA,GAHAA,IAAGC,EAIR,GACHxP,OAAAgP,cAAAhP,OAAAiP,aAAAjP,OAAAiB,OAAAA,MAAAjB,EAAA,CAAA,GAPDa,KAAAqO,KAAIhR,IAAK+C,GAOR,GAACjB,OAAAgP,cAAAhP,OAAAiP,aAAAjP,OAAAkP,MAAAlP,OAAAa;AAAAA,EAAA;AAAAA,SAAAb,EAAA,CAAA;AAPFa,OAAAA;AAFJ,QAAA2E,WAAiB/E;AAWhBQ,MAAAA;AAAA,SAAAjB,SAAAwF,YAGCvE,KAACH,2BAAA,IAAA2O,GAAA,OAAA,EAAaH,mBACZ,yCAACV,QAAc,EAAA,SAAC,GAAU,QAAA,GACxB,UAAC9N,2BAAAA,IAAA4O,GAAAA,SAAA,EAAe,OAAA,GAAW,SAAE,CAAA,GAC/B,EACF,CAAA,GAAQ1P,OAAAwF,UAAAxF,OAAAiB,MAAAA,KAAAjB,EAAA,CAAA,GAJRiB;AAIQ,CAEX;AAED,SAAA0O,iBAAAhQ,OAAA;AAAAK,QAAAA,IAAAC,uBAAA,EAAA,GAKE;AAAA,IAAAgP;AAAAA,IAAAW;AAAAA,IAAAL;AAAAA,EAAAA,IAAqC5P;AAAKS,MAAAA;AAAAJ,WAAAiP,eAAAjP,EAAAuP,CAAAA,MAAAA,IAAAC,MAEVpP,KAAAA,MAAA;AAC9B6O,gBAAYM,IAAGC,EAAG;AAAA,EAAA,GACnBxP,OAAAiP,aAAAjP,EAAA,CAAA,IAAAuP,IAAAC,IAAAxP,OAAAI,MAAAA,KAAAJ,EAAA,CAAA;AAFD,QAAA6P,cAAoBzP,IAMDI,KAAA,GAAG+O,IAAGC,EAAA;AAAW/O,MAAAA;AAAAT,IAAA,CAAA,MAAAK,OAAAC,IAAA,2BAAA,KACtBG,KAAA,CAAA,GAAA,GAAA,CAAA,GAAST,OAAAS,MAAAA,KAAAT,EAAA,CAAA;AAAAa,MAAAA;AAAA,SAAAb,EAAA,CAAA,MAAA6P,eAAA7P,EAAA,CAAA,MAAA4P,YAAA5P,EAAA,CAAA,MAAAQ,MAAAR,EAAA,CAAA,MAAAuP,IAAAC,MAAAxP,EAAA,CAAA,MAAAuP,IAAAO,SAAA9P,EAAA,CAAA,MAAAuP,IAAAQ,QAFrBlP,KAAAC,2BAAA,IAAC,SACgB,EAAA,iBAAAN,IACL,UAAAC,IACN,IAAA8O,IAAGC,IACA,OAAAD,IAAGO,OACDD,SAAU,aACTD,UACJ,MAAAL,IAAGQ,MACT,GAAA/P,OAAA6P,aAAA7P,OAAA4P,UAAA5P,OAAAQ,IAAAR,EAAA,CAAA,IAAAuP,IAAAC,IAAAxP,EAAA,CAAA,IAAAuP,IAAAO,OAAA9P,EAAA,CAAA,IAAAuP,IAAAQ,MAAA/P,QAAAa,MAAAA,KAAAb,EAAA,EAAA,GARFa;AAQE;ACzDN,MAAM+N,SAAOC,wBAAOhF,OAAI;AAAA;AAAA;AAAA,kCAGU,CAAC;AAAA,EAACwE;AAAK,MAAMA,MAAMC,OAAOQ,MAAM,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQ9DkB,aAAajQ,WAAK,SAAAJ,OAAA;AAAAK,QAAAA,IAAAC,uBAAA,CAAA,GACtB;AAAA,IAAA6J,WAAAmG;AAAAA,IAAArO;AAAAA,EAAAA,IAAwCjC;AAAKS,MAAAA;AAAA,SAAAJ,EAAAiQ,CAAAA,MAAAA,aAAAjQ,SAAA4B,WACtCxB,oCAAC,WAAmBwB,EAAAA,QAAW,CAAA,GAAA5B,OAAAiQ,WAAAjQ,OAAA4B,SAAA5B,OAAAI,MAAAA,KAAAJ,EAAA,CAAA,GAA/BI;AAA+B,CACvC,GAGY8P,oBAAoBnQ,MAAAA,KAAK,SAAAJ,OAAA;AAAAK,QAAAA,IAAAC,uBAAA,EAAA,GAGpC;AAAA,IAAAkQ;AAAAA,MAAmBxQ,OACnB;AAAA,IAAAmI;AAAAA,EAAAA,IAAkB3E,eAElB+L,OAA6BpH,QAAOpJ,OAAAyD,OACE,EAACjE,IAAAkS,QAQpC,GAEH,CAAAC,OAAAC,QAAA,IAA0BvK,MAAAA,SAAwBmJ,KAAIrQ,aAAcqQ,KAAIM,CAAAA,EAAAA,SAAa;AAACpP,MAAAA;AAAAJ,WAAAqQ,SACzDjQ,KAAAmP,CAAAA,QAASA,IAAGC,OAAQa,OAAKrQ,OAAAqQ,OAAArQ,OAAAI,MAAAA,KAAAJ,EAAA,CAAA;AAAtD,QAAAuQ,aAAmBrB,KAAIsB,KAAMpQ,EAAyB,GACtDqQ,WAAiBvB,KAAIrQ,SAAW;AAAA2B,MAAAA;AAAAR,WAAAmQ,YAEF3P,KAAA2P,WAAQ,CAAI,OAAO,IAAA,CAAK,QAAQ,QAAQ,OAAO,GAACnQ,OAAAmQ,UAAAnQ,OAAAQ,MAAAA,KAAAR,EAAA,CAAA;AAA9E,QAAA0Q,UAA8BlQ;AAAgDC,MAAAA;AAAAT,IAAA,CAAA,MAAAsQ,YAAAtQ,EAAAyQ,CAAAA,MAAAA,YAAAzQ,EAAAqQ,CAAAA,MAAAA,SAAArQ,SAAAkP,QAKvEzO,KAAAgQ,YAAa3P,+BAAA,iBAAA,EAA8BuP,cAAI,OAAgBC,uBAAgBpB,MAAQ,GAAAlP,OAAAsQ,UAAAtQ,OAAAyQ,UAAAzQ,OAAAqQ,OAAArQ,OAAAkP,MAAAlP,OAAAS,MAAAA,KAAAT,EAAA,CAAA;AAAAa,MAAAA;AAAAb,IAAAyQ,CAAAA,MAAAA,YAAAzQ,UAAAqQ,SAAArQ,EAAA,EAAA,MAAAkP,QAEvFrO,KAAA4P,YACCvB,KAAIhR,IAAAyS,CAAAA,UACD7P,2BAAAA,IAAA8P,GAAA,UAAA,EACkB,mBAAGrB,GAAAA,MAAGC,EAAA,QACjB,MAAC,GACC,QAAAD,MAAGC,OAAQa,OACf,OAAGd,MAAGC,EAAA,UAED,UAAA,QAERD,UAAGpH,MAAAA,OAAAV,aACF3G,2BAAA,IAAC,YACY,EAAA,WAAAyO,MAAGpH,OAAAV,WACL,SAAA8H,MAAGpH,OAAAvG,WAAAzF,aAA+B,CAAA,EAN1CoT,GAAAA,MAAGC,EASV,CACD,GAACxP,OAAAyQ,UAAAzQ,QAAAqQ,OAAArQ,QAAAkP,MAAAlP,QAAAa,MAAAA,KAAAb,EAAA,EAAA;AAAAiB,MAAAA;AAAAjB,IAAAuQ,EAAAA,MAAAA,cAAAvQ,UAAAyQ,YAEHxP,KAAA,CAACwP,YAAYF,YAAUpI,OAAAV,aACrB3G,+BAAAC,GAAAA,KAAA,EAAU,MAAC,GAAW,UAAA,QACrB,UAAAD,+BAAC,YACY,EAAA,WAAAyP,WAAUpI,OAAAV,WACZ,SAAA8I,WAAUpI,OAAAvG,WAAAzF,aAA+B,CAAA,GAEtD,GACD6D,QAAAuQ,YAAAvQ,QAAAyQ,UAAAzQ,QAAAiB,MAAAA,KAAAjB,EAAA,EAAA;AAAAmB,MAAAA;AAAAnB,IAAAS,EAAAA,MAAAA,MAAAT,UAAAa,MAAAb,EAAA,EAAA,MAAAiB,MA7BHE,KAAAC,2BAAA,KAACC,WAAe,WAAA,UAAgB,QAAA,QAC7BZ,UAAAA;AAAAA,IAAAA;AAAAA,IAEAI;AAAAA,IAmBAI;AAAAA,EAAAA,GAQH,GAAOjB,QAAAS,IAAAT,QAAAa,IAAAb,QAAAiB,IAAAjB,QAAAmB,MAAAA,KAAAnB,EAAA,EAAA;AAAAoC,MAAAA;AAAA,SAAApC,EAAA0Q,EAAAA,MAAAA,WAAA1Q,UAAAmB,MA/BTiB,oCAACwM,QAAc8B,EAAAA,SAAe,SAC5BvP,UAAAA,GA+BF,CAAA,GAAOnB,QAAA0Q,SAAA1Q,QAAAmB,IAAAnB,QAAAoC,MAAAA,KAAApC,EAAA,EAAA,GAhCPoC;AAgCO,CAEV;AA1DqC,SAAAD,QAAAgG,QAAA;AAAA,SAOdA,OAAMV;AAAA;AAPQ,SAAA2I,SAAAS,UAAA;AAAA,SAAA;AAAA,IAAArB,IAU1BrH,SAAM5L;AAAAA,IAAAuT,OACH3H,SAAM3L;AAAAA,IAAAuT,MAAAxO;AAAAA,IAAA4G,QAEbA;AAAAA,EAAM;AAAA;ACrCP,MAAM2I,WAAWC,wBAAAA;ACGjB,SAAAC,oBAAA;AAAAhR,QAAAA,IAAAC,uBAAA,CAAA,GACL;AAAA,IAAAyF;AAAAA,IAAAzJ;AAAAA,IAAA6C;AAAAA,IAAAtC;AAAAA,MAAyC2G,YAAY;AAAC/C,MAAAA;AAAAJ,WAAA0F,aAGpDtF,KAAAM,CAAA,UAAA;AACOuQ,UAAAA,kBACLvL,UAAS;AAAA,MAAA/C,MAAQ;AAAA,MAAkB9F,OAAS;AAAA,IAAA,CAAI;AAAA,EAAC,GAClDmD,OAAA0F,WAAA1F,OAAAI,MAAAA,KAAAJ,EAAA,CAAA;AAJH,QAAAkR,kBAAwB9Q,IAWRI,KAAAvE,OAAKO,OACLiE,KAAA3B,OAAKtC;AAAOqE,MAAAA;AAAAb,SAAAA,EAAA,CAAA,MAAAkR,mBAAAlR,EAAAQ,CAAAA,MAAAA,MAAAR,EAAAS,CAAAA,MAAAA,MAAAT,SAAAxD,SAH1BqE,KAAAC,+BAAC,yBACcoQ,8BACD,YAAA1Q,IACA,YAAAC,IACLjE,OACP,GAAAwD,OAAAkR,iBAAAlR,OAAAQ,IAAAR,OAAAS,IAAAT,OAAAxD,OAAAwD,OAAAa,MAAAA,KAAAb,EAAA,CAAA,GALFa;AAKE;AAIN,MAAMsQ,wBAAwBpR,MAAAA,KAAK,SAAAJ,OAAA;AAAAK,QAAAA,IAAAC,uBAAA,EAAA,GAMjC;AAAA,IAAAmR;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAA9U;AAAAA,EAAAA,IAAqDmD;AAAKS,MAAAA;AAAAJ,IAAA,CAAA,MAAAK,OAAAC,IAAA,2BAAA,KAKpDF,oCAACc,GAAK,MAAA,EAAA,WAAY,iBAAW,UAE7B,IAAA,CAAA,GAAOlB,OAAAI,MAAAA,KAAAJ,EAAA,CAAA;AAAAQ,MAAAA;AAAAR,IAAA,CAAA,MAAAK,OAAAC,IAAA,2BAAA,KAIGE,KAAA,CAAA,GAAA,GAAA,CAAA,GAASR,OAAAQ,MAAAA,KAAAR,EAAA,CAAA;AAAAS,MAAAA;AAAAT,IAAA,CAAA,MAAAK,OAAAC,IAAA,2BAAA,KACsBG,KAAA;AAAA,IAAA8N,OAAQ;AAAA,EAAA,GAAUvO,OAAAS,MAAAA,KAAAT,EAAA,CAAA;AAAAa,MAAAA;AAAAb,IAAAoR,CAAAA,MAAAA,eAAApR,SAAAxD,SAD7DqE,KAACC,+BAAAI,GAAAA,MAAA,EAAW,MAAAV,IAAkB,QAAA,QAC5B,UAEIM,2BAAAA,IAAA,KAAA,EAFI,MAAA,KAAasQ,SAAU,aAAU,OAAA3Q,cAEzC,MAAA,CAAA,GACF,GAAOT,OAAAoR,aAAApR,OAAAxD,OAAAwD,OAAAa,MAAAA,KAAAb,EAAA,CAAA;AAAAiB,MAAAA;AAAAjB,WAAAqR,cAENpQ,KAAAoQ,cACEvQ,2BAAAA,IAAAI,GAAA,MAAA,EAAW,OAAA,UAAe,2BAE3B,WAAA,CAAA,GACDlB,OAAAqR,YAAArR,OAAAiB,MAAAA,KAAAjB,EAAA,CAAA;AAAAmB,MAAAA;AAAAnB,WAAAsR,cAEAnQ,KAAAmQ,cAAcxQ,+BAACI,GAAAA,MAAW,EAAA,MAAA,CAAA,GAAA,GAAA,CAAA,GAAYoQ,UAAW,WAAA,CAAA,GAAOtR,OAAAsR,YAAAtR,OAAAmB,MAAAA,KAAAnB,EAAA,CAAA;AAAAoC,MAAAA;AAAA,SAAApC,EAAAa,EAAAA,MAAAA,MAAAb,UAAAiB,MAAAjB,EAAA,EAAA,MAAAmB,MApB3DiB,KAAAhB,2BAAA,KAACmQ,kBAEG,WAAAnR,IAIK,OAAA,GAEPS,UAAAA;AAAAA,IAAAA;AAAAA,IAMCI;AAAAA,IAMAE;AAAAA,EAAAA,GACH,GAAcnB,QAAAa,IAAAb,QAAAiB,IAAAjB,QAAAmB,IAAAnB,QAAAoC,MAAAA,KAAApC,EAAA,EAAA,GArBdoC;AAqBc,CAEjB,GCnDYoP,mBAAmBzR,WAAK,WAAA;AAAAC,QAAAA,IAAAC,uBAAA,EAAA,GACnC;AAAA,IAAA+H;AAAAA,IAAA1J;AAAAA,IAAAa;AAAAA,IAAAC;AAAAA,IAAAE;AAAAA,IAAAD;AAAAA,MAA0D8D,YAAY;AAAC,MAAA/C,IAAAI;AAAAR,WAAAgI,YAAAhI,EAAA1B,CAAAA,MAAAA,QAAA0B,EAAAb,CAAAA,MAAAA,WAAAa,EAAA,CAAA,MAAAZ,UAAAY,SAAAX,YAAAW,EAAA,CAAA,MAAAV,QAInEkB,KAAAlC,SAAS,MAAGiD,SAERtC,cAAA;AAAA,IAAAC,SAAwB8I;AAAAA,IAAQ1J;AAAAA,IAAAa;AAAAA,IAAAC;AAAAA,IAAAE;AAAAA,IAAAD;AAAAA,EAAAA,CAAwC,GAACW,OAAAgI,UAAAhI,OAAA1B,MAAA0B,OAAAb,SAAAa,OAAAZ,QAAAY,OAAAX,UAAAW,OAAAV,MAAAU,OAAAQ,MAAAA,KAAAR,EAAA,CAAA,GAAAI,KAF7EI;AAFJ,QAAAiR,YAAkBrR,IAUVK,KAAAgR,YAAY,MAAM,UACZ5Q,MAAC4Q;AAASxQ,MAAAA;AAAAjB,SAAAA,EAAAyR,CAAAA,MAAAA,aAAAzR,SAAAS,MAAAT,EAAA,CAAA,MAAAa,MAFtBI,KAACH,2BAAAA,IAAA0J,GAAA,QAAA,EACK,IAAA/J,IACM,UAAAI,IACA,aACJ4Q,MAAAA,WACKC,WAAAA,MAAAA,YACN,MAAA,SACI,SAAC,GACN,KAAA,uBACG,QAAA,UACF,MAAA,aACL,CAAA,GAAA1R,OAAAyR,WAAAzR,OAAAS,IAAAT,OAAAa,IAAAb,QAAAiB,MAAAA,KAAAjB,EAAA,EAAA,GAXFiB;AAWE,CAEL;AC1BM,SAAA0Q,aAAA;AAAA3R,QAAAA,IAAAC,uBAAA,CAAA,GACL;AAAA,IAAAyF;AAAAA,IAAAtG;AAAAA,MAA4B+D,YAAY;AAAC/C,MAAAA;AAAAJ,WAAA0F,aAEFtF,KAAAA,MAAA;AAC5B,cAAA;AAAA,MAAAuC,MAAQ;AAAA,IAAA,CAAwB;AAAA,EAAC,GAC3C3C,OAAA0F,WAAA1F,OAAAI,MAAAA,KAAAJ,EAAA,CAAA;AAFD4R,QAAAA,qBAA2BxR,IAIEI,KAAApB,WAAW;AAAMqB,MAAAA;AAAA,SAAAT,EAAA4R,CAAAA,MAAAA,sBAAA5R,SAAAQ,MAAvCC,KAACK,2BAAAA,IAAA,gBAAqB,EAAA,MAAAN,IAAmCoR,gBAAAA,mBAAAA,CAAsB,GAAA5R,OAAA4R,oBAAA5R,OAAAQ,IAAAR,OAAAS,MAAAA,KAAAT,EAAA,CAAA,GAA/ES;AAA+E;AAGxF,MAAMoR,iBAAiB9R,MAAAA,KAAK,SAAAJ,OAAA;AAAAK,QAAAA,IAAAC,uBAAA,CAAA,GAI1B;AAAA,IAAA6R;AAAAA,IAAAC;AAAAA,EAA+BpS,IAAAA,OAKrBS,KAAA0R,OAAIE,MAAAC,WAAAA,MAAAA;AAAqBzR,MAAAA;AAAA,SAAAR,EAAA+R,CAAAA,MAAAA,kBAAA/R,SAAAI,MAFjCI,KAAAM,2BAAA,IAAC0J,aACW,aACJ,MAAApK,IACD,MAAA,SACI2R,SAAa,gBACb,SAAA,GACT,GAAA/R,OAAA+R,gBAAA/R,OAAAI,IAAAJ,OAAAQ,MAAAA,KAAAR,EAAA,CAAA,GANFQ;AAME,CAEL,GCxBY0R,eAAenS,WAAK,WAAA;AAAAC,QAAAA,IAAAC,uBAAA,CAAA,GAC/B;AAAA,IAAAyF;AAAAA,IAAA5G;AAAAA,IAAAO;AAAAA,MAAqC8D,YAAY;AAAC/C,MAAAA;AAAAJ,WAAA0F,aAGhDtF,KAAAvD,CAAA,UAAA;AACW,cAAA;AAAA,MAAA8F,MAAQ;AAAA,MAAsB9F;AAAAA,IAAAA,CAAQ;AAAA,EAAC,GACjDmD,OAAA0F,WAAA1F,OAAAI,MAAAA,KAAAJ,EAAA,CAAA;AAHHmS,QAAAA,cAAoB/R,IAOeI,MAAC1B;AAAK2B,MAAAA;AAAA,SAAAT,EAAAmS,CAAAA,MAAAA,eAAAnS,SAAAQ,MAAAR,EAAA,CAAA,MAAAX,YAAlCoB,oCAAC,kBAA2B,EAAA,UAAAD,IAAqB2R,aAAuB9S,SAAAA,CAAY,GAAAW,OAAAmS,aAAAnS,OAAAQ,IAAAR,OAAAX,UAAAW,OAAAS,MAAAA,KAAAT,EAAA,CAAA,GAApFS;AAAoF,CAC5F,GAEK2R,kBAA4C;AAAA,EAChDC,eAAe;AAAA,EACfC,WAAW;AAAA,EACXC,QAAQ;AACV,GAEMC,mBAAmBzS,WAAK,SAAAJ,OAAA;AAAAK,QAAAA,IAAAC,uBAAA,EAAA,GAK5B;AAAA,IAAAwS;AAAAA,IAAAN;AAAAA,IAAA9S;AAAAA,EAAAA,IAA0CM;AAAKS,MAAAA;AAAAJ,WAAAX,YAWjCe,KAAA9D,iBAAAkU,KAAAkC,CAA6BA,MAAAA,EAACnW,SAAU8C,QAAQ,GAAC7C,OAAOwD,OAAAX,UAAAW,OAAAI,MAAAA,KAAAJ,EAAA,CAAA;AAAAQ,MAAAA;AAAAR,IAAAyS,CAAAA,MAAAA,YAAAzS,SAAAI,MANhEI,KAACM,2BAAA,IAAA0J,aACWiI,UACA,UAAC,GACAE,WAAAA,MAAAA,YACN,MAAA,SACI,SAAC,GACJ,MAAAvS,GACN,CAAA,GAAAJ,OAAAyS,UAAAzS,OAAAI,IAAAJ,OAAAQ,MAAAA,KAAAR,EAAA,CAAA;AAAAS,MAAAA;AAAAT,IAAAmS,CAAAA,MAAAA,eAAAnS,SAAAX,YAKCoB,KAAAnE,iBAAA4B,IAAA0U,YACE9R,2BAAA,IAAA+R,aAAA,EACW,aAED,SAAA,MAAMV,YAAYS,OAAMrW,IAAK,GAC7B,YACC,UAAAqW,OAAMrW,SAAU8C,UACpB,MAAAuT,OAAMpW,SAJPoW,OAAMrW,IAIO,CAErB,GAACyD,OAAAmS,aAAAnS,OAAAX,UAAAW,OAAAS,MAAAA,KAAAT,EAAA,CAAA;AAAAa,MAAAA;AAAAb,WAAAS,MAVJI,KAAAC,2BAAAA,IAACgS,WACErS,UAUH,GAAA,CAAA,GAAOT,OAAAS,IAAAT,OAAAa,MAAAA,KAAAb,EAAA,CAAA;AAAAiB,MAAAA;AAAA,SAAAjB,EAAAQ,EAAAA,MAAAA,MAAAR,UAAAa,MAxBXI,oCAAC8R,GAAAA,YAEG,EAAA,QAAAvS,IASC,IAAA,iBAED,MAAAK,IAaOuR,SAAYA,gBAAAA,CACrB,GAAApS,QAAAQ,IAAAR,QAAAa,IAAAb,QAAAiB,MAAAA,KAAAjB,EAAA,EAAA,GA3BFiB;AA2BE,CAEL;ACxDM,SAAA+R,WAAA;AAAAhT,QAAAA,IAAAC,uBAAA,CAAA,GACL;AAAA,IAAAyF;AAAAA,IAAA5G;AAAAA,IAAAQ;AAAAA,MAAiC6D,YAAY;AAAC/C,MAAAA;AAAAJ,WAAA0F,aAG5CtF,KAAAvD,WAAmB6I,UAAS;AAAA,IAAA/C,MAAQ;AAAA,IAAkB9F;AAAAA,EAAQ,CAAA,GAACmD,OAAA0F,WAAA1F,OAAAI,MAAAA,KAAAJ,EAAA,CAAA;AADjEiT,QAAAA,UAAgB7S,IAKeI,MAAC1B;AAAK2B,MAAAA;AAAA,SAAAT,EAAAiT,CAAAA,MAAAA,WAAAjT,SAAAQ,MAAAR,EAAA,CAAA,MAAAV,QAA9BmB,oCAAC,cAAuB,EAAA,UAAAD,IAAiByS,SAAe3T,KAAAA,CAAQ,GAAAU,OAAAiT,SAAAjT,OAAAQ,IAAAR,OAAAV,MAAAU,OAAAS,MAAAA,KAAAT,EAAA,CAAA,GAAhES;AAAgE;AAGzE,MAAM2R,gBAA4C;AAAA,EAChDC,eAAe;AAAA,EACfC,WAAW;AAAA,EACXC,QAAQ;AACV,GAEMW,eAAenT,WAAK,SAAAJ,OAAA;AAAAK,QAAAA,IAAAC,uBAAA,EAAA,GAKxB;AAAA,IAAAwS;AAAAA,IAAAQ;AAAAA,IAAA3T;AAAAA,EAAAA,IAAkCK;AAAKS,MAAAA;AAAAJ,WAAAV,QAWzBc,KAAAxD,aAAA4T,KAAAkC,CAAyBA,MAAAA,EAAC7V,UAAWyC,IAAI,GAAC9C,OAAOwD,OAAAV,MAAAU,OAAAI,MAAAA,KAAAJ,EAAA,CAAA;AAAAQ,MAAAA;AAAAR,IAAAyS,CAAAA,MAAAA,YAAAzS,SAAAI,MANzDI,KAACM,2BAAA,IAAA0J,aACWiI,UACA,UAAC,GACAE,WAAAA,MAAAA,YACN,MAAA,SACI,SAAC,GACJ,MAAAvS,GACN,CAAA,GAAAJ,OAAAyS,UAAAzS,OAAAI,IAAAJ,OAAAQ,MAAAA,KAAAR,EAAA,CAAA;AAAAS,MAAAA;AAAAT,IAAAiT,CAAAA,MAAAA,WAAAjT,SAAAV,QAKCmB,KAAA7D,aAAAsB,IAAA0U,YACE9R,2BAAA,IAAA+R,aAAA,EACW,aAED,SAAA,MAAMI,QAAQL,OAAM/V,KAAM,GAC1B,YACC,UAAA+V,OAAM/V,UAAWyC,MACrB,MAAAsT,OAAMpW,SAJPoW,OAAM/V,KAIO,CAErB,GAACmD,OAAAiT,SAAAjT,OAAAV,MAAAU,OAAAS,MAAAA,KAAAT,EAAA,CAAA;AAAAa,MAAAA;AAAAb,WAAAS,MAVJI,KAAAC,2BAAAA,IAACgS,WACErS,UAUH,GAAA,CAAA,GAAOT,OAAAS,IAAAT,OAAAa,MAAAA,KAAAb,EAAA,CAAA;AAAAiB,MAAAA;AAAA,SAAAjB,EAAAQ,EAAAA,MAAAA,MAAAR,UAAAa,MAxBXI,oCAAC8R,GAAAA,YAEG,EAAA,QAAAvS,IASC,IAAA,aAED,MAAAK,IAaOuR,SAAYA,cAAAA,CACrB,GAAApS,QAAAQ,IAAAR,QAAAa,IAAAb,QAAAiB,MAAAA,KAAAjB,EAAA,EAAA,GA3BFiB;AA2BE,CAEL,GClDYkS,iBAAiBpT,MAAAA,KAAK,SAAAJ,OAAA;AAAAK,QAAAA,IAAAC,uBAAA,EAAA,GAMjC;AAAA,IAAAmT;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,EAAAA,IAAqF5T,OACrF6T,aAAmBC,GAAAA,iBACnB;AAAA,IAAA3U;AAAAA,IAAAtC;AAAAA,MAAuB2G,YAAY;AAAC/C,MAAAA;AAAAJ,IAAA,CAAA,MAAAK,OAAAC,IAAA,2BAAA,KAGgBF,KAAA;AAAA,IAAAG,YAAA;AAAA,EAAA,GAAeP,OAAAI,MAAAA,KAAAJ,EAAA,CAAA;AAAAQ,MAAAA;AAAAR,IAAA,CAAA,MAAAK,OAAAC,IAAA,2BAAA,KAE/CE,KAAC,CAAA,SAAS,SAAS,MAAM,GAACR,OAAAQ,MAAAA,KAAAR,EAAA,CAAA;AAAAS,MAAAA;AAAAT,IAAA,CAAA,MAAAK,OAAAC,IAAA,2BAAA,KAG1BG,KAAA,CAAA,GAAA,GAAA,CAAA,GAAST,OAAAS,MAAAA,KAAAT,EAAA,CAAA;AAAAa,MAAAA;AAAAb,IAAAqT,CAAAA,MAAAA,qBAAArT,SAAAuT,qBAHvB1S,KAAAC,+BAACC,GAAAA,OAAa,SAAAP,IAAiC,MAAA,QAC7C,UAAAM,+BAAC0J,GAAAA,UACY,cAAA,kBACD,UAAA/J,IACJiT,MAAOA,MAAAA,UACR,MAAA,SACIH,SAAgB,mBAChB,SAAC,GACAF,4BAAiB,CAAA,GAE/B,GAAMrT,OAAAqT,mBAAArT,OAAAuT,mBAAAvT,OAAAa,MAAAA,KAAAb,EAAA,CAAA;AAAAiB,MAAAA;AAAAjB,IAAA,CAAA,MAAAK,OAAAC,IAAA,2BAAA,KAIKW,KAAC,CAAA,UAAU,UAAU,YAAY,GAACjB,OAAAiB,MAAAA,KAAAjB,EAAA,CAAA;AAAAmB,MAAAA;AAAAnB,IAAA,CAAA,MAAAK,OAAAC,IAAA,2BAAA,KAGpCa,KAAA;AAAA,IAAAwS,UAAA;AAAA,EAAA,GAAe3T,OAAAmB,MAAAA,KAAAnB,EAAA,CAAA;AAAAoC,MAAAA;AAAApC,IAAA,CAAA,MAAAwT,cAAAxT,EAAA,CAAA,MAAAlB,OAAAtC,SAAAwD,EAAA,EAAA,MAAAxD,SAErB4F,KAAAoR,aAAc,KAAK1S,2BAAAA,IAAAI,GAAAA,MAAA,EAAY,QAAA,QAAQpC,UAAAA,OAAKtC,SAAWA,MAAM,CAAA,GAAOwD,OAAAwT,YAAAxT,EAAA,CAAA,IAAAlB,OAAAtC,OAAAwD,QAAAxD,OAAAwD,QAAAoC,MAAAA,KAAApC,EAAA,EAAA;AAAAsC,MAAAA;AAAAtC,YAAAwT,cACpElR,KAAAkR,cAAU,oCAAU,mBAAoB,CAAA,CAAA,GAAAxT,QAAAwT,YAAAxT,QAAAsC,MAAAA,KAAAtC,EAAA,EAAA;AAAAqG,MAAAA;AAAArG,IAAAoC,EAAAA,MAAAA,MAAApC,UAAAsC,MAR3C+D,KAACjF,2BAAA,KAAAC,WACO,MAAC,GACE,SAAAJ,IACA,SAAC,GACH,QAAA,UACA,OAAAE,IAENiB,UAAAA;AAAAA,IAAAA;AAAAA,IACAE;AAAAA,EAAAA,EACH,CAAA,GAAOtC,QAAAoC,IAAApC,QAAAsC,IAAAtC,QAAAqG,MAAAA,KAAArG,EAAA,EAAA;AAAA0G,MAAAA;AAAA1G,IAAA,EAAA,MAAAK,OAAAC,IAAA,2BAAA,KAEOoG,KAAC,CAAA,SAAS,SAAS,MAAM,GAAC1G,QAAA0G,MAAAA,KAAA1G,EAAA,EAAA;AAAAyG,MAAAA;AAAAzG,IAAA,EAAA,MAAAK,OAAAC,IAAA,2BAAA,KAG1BmG,MAAA,CAAA,GAAA,GAAA,CAAA,GAASzG,QAAAyG,OAAAA,MAAAzG,EAAA,EAAA;AAAA6G,MAAAA;AAAA7G,IAAAoT,EAAAA,MAAAA,qBAAApT,UAAAsT,qBAHvBzM,MAAA/F,+BAACC,GAAAA,OAAa,SAAA2F,IAAiC,MAAA,QAC7C,UAAA5F,+BAAC0J,GAAAA,UACY,cAAA,kBACD,UAAA/D,KACJmN,MAAWA,MAAAA,cACZ,MAAA,SACIN,SAAgB,mBAChB,SAAC,GACAF,4BAAiB,CAAA,GAE/B,GAAMpT,QAAAoT,mBAAApT,QAAAsT,mBAAAtT,QAAA6G,OAAAA,MAAA7G,EAAA,EAAA;AAAA8G,MAAAA;AAAA9G,IAAA,EAAA,MAAAK,OAAAC,IAAA,2BAAA,KAEQwG,MAAC,CAAA,QAAQ,QAAQ,OAAO,GAAC9G,QAAA8G,OAAAA,MAAA9G,EAAA,EAAA;AAAAiH,MAAAA;AAAAjH,IAAA,EAAA,MAAAK,OAAAC,IAAA,2BAAA,KAAvC2G,MAACnG,2BAAA,IAAAC,QAAA,EAAa,SAAA+F,KAAgC,MAAA,QAC5C,UAAC1F,2BAAAA,KAAAyS,GAAAA,QAAA,EAAc,OAAC,GACd,UAAA;AAAA,IAAA/S,2BAAA,IAAC,kBAAgB,EAAA;AAAA,mCAChB;mCACA,UACD,EAAA;AAAA,mCAAC,YACH,CAAA,CAAA;AAAA,EAAA,GAAA,EAAA,CACF,GAAMd,QAAAiH,OAAAA,MAAAjH,EAAA,EAAA;AAAA8M,MAAAA;AAAA9M,SAAAA,EAAA6G,EAAAA,MAAAA,OAAA7G,UAAAa,MAAAb,EAAA,EAAA,MAAAqG,MA5CVyG,qCAACjD,GAAK,MAAA,EAAA,cAAW,IAAO,MAAA,QAAgB,SAAC,GAAS,OAAAzJ,IAChD,UAAAgB,2BAAA,KAACC,GAAU,MAAA,EAAA,KAAC,GACVR,UAAAA;AAAAA,IAAAA;AAAAA,IAYAwF;AAAAA,IAWAQ;AAAAA,IAYAI;AAAAA,EAAAA,GAQF,EAAA,CACF,GAAOjH,QAAA6G,KAAA7G,QAAAa,IAAAb,QAAAqG,IAAArG,QAAA8M,OAAAA,MAAA9M,EAAA,EAAA,GA9CP8M;AA8CO,CAEV;ACjEegH,SAAAA,cACd/L,aACAgM,MACAxX,MACyC;AACzC,MAAIwX,KAAKC,WAAW;AAClB,UAAM/X,QAAQ8X,KAAKC;AAEnB,WAAI/X,MAAMM,SAAS,aACVN,MAAM8C,QAAQb,IAAKmH,CAAO,OAAA;AAAA,MAAC1C,MAAM;AAAA,MAAS,GAAG0C;AAAAA,IAAC,EAAE,IAGlD,CACL;AAAA,MACE1C,MAAM;AAAA,MACNpG,MAAMN,MAAMM,QAAQ;AAAA,MACpBC,OAAOP,MAAMO,SAAS;AAAA,MACtBP;AAAAA,IAAAA,CACD;AAAA,EAAA;AAIL,QAAMgY,OAAOlM,YAAYyI,KAAM0D,CAAAA,MAAMA,EAAE3X,SAASA,IAAI,GAI9C4X,QAFUnW,OAAOC,QAAQ8V,IAAI,EAAErV,OAAO,CAAC,CAACZ,GAAG,MAAMA,QAAQ,WAAW,EAEpDsW,QAAQ,CAAC,CAACtW,KAAKuW,KAAK,MACxCP,cAAcG,MAAMzO,YAAY,CAAI6O,GAAAA,OAAkCvW,GAAG,CAC3E;AAEA,SAAO,CACL;AAAA,IACE6E,MAAM;AAAA,IACNpG;AAAAA,IACAC,OAAOyX,MAAMzX,SAASD;AAAAA,IACtB4X;AAAAA,EAAAA,CACD;AAEL;AAGgBG,SAAAA,UACdvM,aACA1J,QACsB;AACtB,QAAMkW,WAA2C,CAAC;AAGlD,aAAWtY,SAASoC,QAAQ;AAC1B,UAAMmW,YAAYvY,MAAMM,QAAQ,YAE1BkY,YAA2BF,SAASC,SAAS,KAAK;AAAA,MACtDjY,MAAMiY;AAAAA,MACNhY,OAAOP,MAAMO;AAAAA,MACbuC,SAAS,CAAA;AAAA,OAGL2V,cAA6B;AAAA,MACjC,GAAGD;AAAAA,MACHlY,MAAMiY;AAAAA,MACNzV,SAAS0V,UAAU1V,QAAQuG,OAAOrJ,MAAM8C,OAAO;AAAA,IACjD;AAEAwV,aAASC,SAAS,IAAIE;AAAAA,EAAAA;AAGxB,MAAIC,OAAO,CAAC;AAED1Y,aAAAA,SAAS+B,OAAO4W,OAAOL,QAAQ;AACxCI,WAAOE,kBAAAA,IAAIF,MAAM1Y,MAAMM,QAAQ,YAAY;AAAA,MAACyX,WAAW/X;AAAAA,IAAAA,CAAM;AAG/D,QAAM6Y,WAAqB;AAAA,IACzBnS,MAAM;AAAA,IACNpG,MAAM;AAAA,IACN4X,OAAO,CAAA;AAAA,EACT;AAEA,aAAW,CAACrW,KAAKiX,KAAK,KAAK/W,OAAOC,QAAQ0W,IAAI;AAC5CG,aAASX,MAAMnI,KAAK,GAAG8H,cAAc/L,aAAagN,OAAkCjX,GAAG,CAAC;AAGnFgX,SAAAA;AACT;ACnFaE,MAAAA,gBAAgBjV,MAAAA,KAAK,SAAAJ,OAAA;AAAAK,QAAAA,IAAAC,uBAAA,CAAA,GAIhC;AAAA,IAAAgV;AAAAA,IAAAC;AAAAA,EAAAA,IAAgCvV;AAAKS,MAAAA;AAAA,MAAAJ,EAAAiV,CAAAA,MAAAA,WAAAjV,SAAAkV,cAAA;AAAA1U,QAAAA;AAAAR,aAAAkV,gBAIpB1U,MAAAC,CAAA,OAAA;AAAC,YAAA;AAAA,QAAAxE;AAAAA,QAAA6C;AAAAA,MAAAA,IAAA2B;AACZ,aAAAK,2BAAA,IAAC+I,GACI,MAAA,EAAA,IAAA,KACQ,aAAA,IAAI5N,MAAKM,IAAA,IAASuC,MAAKvC,IAAA,IAC5B,UAAIN,MAAKM,IAAA,IAASuC,MAAKvC,IAAA,IAEpB2Y,SAAW,cACX,YACD,QAAC,GAET,yCAAChU,GAAW,MAAA,EAAA,MAAA,GAAgB,cAAA,YACxBjF,UAAAA,CAAAA,MAAKO,SAAU,IAAIsC,MAAKtC,KAAA,EAAAkC,OAAAC,OAAsB,EAACR,KAAM,KAAK,EAC9D,CAAA,EAPQlC,GAAAA,GAAAA,MAAKM,IAAA,IAASuC,MAAKvC,IAAA,EAQ7B;AAAA,IACDyD,GAAAA,OAAAkV,cAAAlV,OAAAQ,OAAAA,MAAAR,EAAA,CAAA,GAdAI,KAAA6U,QAAO/W,IAAKsC,GAcZ,GAACR,OAAAiV,SAAAjV,OAAAkV,cAAAlV,OAAAI;AAAAA,EAAA;AAAAA,SAAAJ,EAAA,CAAA;AAAAQ,MAAAA;AAAAR,SAAAA,SAAAI,MAfJI,KAACM,+BAAA6J,GAAAA,OAAA,EAAa,OAAA,GACXvK,UAeH,GAAA,CAAA,GAAQJ,OAAAI,IAAAJ,OAAAQ,MAAAA,KAAAR,EAAA,CAAA,GAhBRQ;AAgBQ,CAEX,GCvBY2U,YAAYpV,MAAAA,KAAK,SAAAJ,OAAA;AAAAK,QAAAA,IAAAC,uBAAA,CAAA,GAG5B;AAAA,IAAAkU;AAAAA,EAAAA,IAAgBxU;AAAKS,MAAAA;AAAAJ,SAAAA,SAAAmU,SAGnB/T,oCAACgV,SAAY,EAAA,UACX,UAAAtU,2BAAAA,IAAC,WAAiBqT,EAAAA,MACpB,CAAA,EAAA,CAAA,GAAOnU,OAAAmU,OAAAnU,OAAAI,MAAAA,KAAAJ,EAAA,CAAA,GAFPI;AAEO,CAEV,GAEKiV,YAAYtV,MAAAA,KAAK,SAAAJ,OAAA;AAAAK,QAAAA,IAAAC,uBAAA,EAAA,GAIrB;AAAA,IAAAqV,UAAAlV;AAAAA,IAAA+T;AAAAA,EAAAA,IAA+BxU,OAAxB2V,WAAAlV,OAAamB,SAAF,KAAXnB,IACP;AAAA,IAAAsF;AAAAA,IAAApH,MAAAiX;AAAAA,IAAAtZ,OAAAuZ;AAAAA,IAAA1W,OAAA2W;AAAAA,MAAkFtS,YAAY;AAAC3C,MAAAA;AAAAR,WAAA0F,aAG7FlF,KAAAE,CAAA,UAAA;AACEA,UAAKuQ,eAAgB;AAGrB,UAAAyE,aADehV,MAAKC,cACKgV,aAAc,WAAW;AAE9CD,kBACFhQ,UAAS;AAAA,MAAA/C,MAAQ;AAAA,MAAkB9F,OAAS6Y;AAAAA,IAAAA,CAAW;AAAA,EAAC,GAE3D1V,OAAA0F,WAAA1F,OAAAQ,MAAAA,KAAAR,EAAA,CAAA;AAVH,QAAA4V,mBAAyBpV;AAYxBC,MAAAA;AAAA,OAAA;AAGK0T,QAAAA,MAAKtV,WAAa,GAAA;AACpB,WAAA;AAAWkD,YAAAA;AAAAA,IAAAA;AAAAlB,QAAAA;AAAAb,QAAAA,SAAAsV,YAAAtV,EAAAwV,CAAAA,MAAAA,gBAAAxV,EAAAyV,CAAAA,MAAAA,gBAAAzV,EAAA,CAAA,MAAA4V,oBAAA5V,SAAAmU,SAAAnU,EAAA,CAAA,MAAAuV,cAAA;AAAAtU,UAAAA;AAAAjB,QAAAsV,CAAAA,MAAAA,YAAAtV,EAAA,EAAA,MAAAwV,gBAAAxV,EAAAyV,EAAAA,MAAAA,gBAAAzV,EAAA,EAAA,MAAA4V,oBAAA5V,UAAAuV,gBAKEtU,MAAAA,CAAA4U,MAAAC,cAAA;AACLD,YAAAA,KAAIlT,SAAU,QAAM;AACtB,gBAAArE,OAAa,GAAGgX,QAAQ,IAAIO,KAAItZ,IAAA;AAAO,iBAGpCuE,2BAAA,IAAA,UAAA,EACW,UAAAyU,aAAY5J,WAAYrN,OAAO,GAAG,GAEtCuX,MACAvX,KAAAA,GAFDuX,KAAItZ,QAASuZ,SAGlB;AAAA,QAAA;AAIFD,eAAAA,KAAIlT,SAAU,UAEb7B,2BAAA,IAAAiV,GAAA,UAAA,EACY,aAAA,IAAIF,KAAItZ,QAAS,EAAE,IACpB,UAAA,CAAA,GAAA,GAAA,CAAA,GACJ,UAAIsZ,KAAItZ,QAAS,EAAE,IAEhBqZ,SAAAA,kBACA,SAAC,GACA,UAAAH,cAAY3L,cAAgB+L,KAAI/L,WACpC,MAAA+L,KAAIrZ,MAJLqZ,GAAAA,KAAItZ,IAKT,IAIFsZ,KAAIlT,SAAU,UAEd7B,2BAAA,IAAC,WACe2U,EAAAA,cACJ,UAAAI,KAAI5Z,UAAWuZ,cACnBK,MAEQD,cAAAA,iBADTC,GAAAA,KAAItZ,IAET,IAIEuE,2BAAAA,IAAAiV,GAAAA,UAAA,EAA8B,MAAA,UAAA,GAAR,SAAoB;AAAA,MACnD/V,GAAAA,OAAAsV,UAAAtV,QAAAwV,cAAAxV,QAAAyV,cAAAzV,QAAA4V,kBAAA5V,QAAAuV,cAAAvV,QAAAiB,OAAAA,MAAAjB,EAAA,EAAA,GA1CAa,KAAAsT,MAAKjW,IAAK+C,GA0CV,GAACjB,OAAAsV,UAAAtV,OAAAwV,cAAAxV,OAAAyV,cAAAzV,OAAA4V,kBAAA5V,OAAAmU,OAAAnU,OAAAuV,cAAAvV,OAAAa;AAAAA,IAAA;AAAAA,WAAAb,EAAA,CAAA;AAAAiB,QAAAA;AAAAjB,cAAAa,MA3CJI,KACGJ,+BAAAA,WAAAA,UAAAA,EAAAA,UAAAA,GAAAA,CA0CC,GACDb,QAAAa,IAAAb,QAAAiB,MAAAA,KAAAjB,EAAA,EAAA,GA7CLS,KACEQ;AAAAA,EAAAA;AANGR,SAAAA;AAoD0E,CAClF,GAEKuV,WAAWjW,WAAK,SAAAJ,OAAA;AAAAK,QAAAA,IAAAC,uBAAA,CAAA,GACpB;AAAA,IAAAkQ;AAAAA,IAAA0F;AAAAA,IAAAvX;AAAAA,EAAAA,IAA+BqB;AAAK,MAAAS,IAAAI;AAAAR,WAAA6V,KAAA1B,SAAAnU,SAAA1B,QAELkC,KAACM,2BAAAA,IAAA,WAAA,EAAoBxC,UAAG,MAAU,OAAAuX,KAAI1B,MAAAA,CAAU,GAAAnU,EAAA,CAAA,IAAA6V,KAAA1B,OAAAnU,OAAA1B,MAAA0B,OAAAQ,MAAAA,KAAAR,EAAA,CAAA,GAAAI,KAAhDI;AAA/B,QAAAgF,WAAiBpF;AAA6EK,MAAAA;AAAAT,IAAA,CAAA,MAAAK,OAAAC,IAAA,2BAAA,KAKhFG,KAAA,CAAA,GAAA,GAAA,CAAA,GAAST,OAAAS,MAAAA,KAAAT,EAAA,CAAA;AAAAa,MAAAA;AAAAb,SAAAA,EAAA,CAAA,MAAAwF,YAAAxF,EAAA,CAAA,MAAAmQ,YAAAnQ,EAAA,CAAA,MAAA6V,KAAArZ,SAFrBqE,oCAACkV,aACW5F,EAAAA,UACA,UAAA1P,IACD,SAAA,GACH,MAAAoV,KAAIrZ,OACH,QAAA,YAENgJ,UACH,GAAWxF,OAAAwF,UAAAxF,OAAAmQ,UAAAnQ,EAAA,CAAA,IAAA6V,KAAArZ,OAAAwD,OAAAa,MAAAA,KAAAb,EAAA,CAAA,GARXa;AAQW,CAEd,GAEKoV,YAAYlW,WAAK,SAAAJ,OAAA;AAAAK,QAAAA,IAAAC,uBAAA,EAAA,GAMrB;AAAA,IAAAwV;AAAAA,IAAAtF;AAAAA,IAAA0F;AAAAA,IAAAX;AAAAA,EAAAA,IAAqDvV;AAAK,MAAAS,IAAAI;AAAA,MAAAR,SAAAyV,gBAAAzV,EAAA6V,CAAAA,MAAAA,KAAA5Z,MAAAM,QAAAyD,EAAA,CAAA,MAAA6V,KAAA5Z,MAAA8C,WAAAiB,EAAA,CAAA,MAAAkV,cAAA;AAAAzU,QAAAA;AAAAT,MAAA,CAAA,MAAAyV,gBAAAzV,EAAA6V,CAAAA,MAAAA,KAAA5Z,MAAAM,QAAAyD,SAAAkV,gBAI/BzU,MAAA3B,CAAAA,UACpBgC,2BAAA,IAAAiV,GAAA,UAAA,EACY,aAAA,IAAIF,KAAI5Z,MAAAM,IAAA,IAAeuC,MAAKvC,IAAA,IAC7B,qBACJ,UAAIsZ,KAAI5Z,MAAAM,IAAA,IAAeuC,MAAKvC,IAAA,IAEzB2Y,SAAAA,cACA,SAAA,GACC,UAAAO,iBAAiB3W,OACrB,MAAAA,MAAKtC,MAJNsC,GAAAA,MAAKvC,IAKV,GACHyD,OAAAyV,cAAAzV,EAAA6V,CAAAA,IAAAA,KAAA5Z,MAAAM,MAAAyD,OAAAkV,cAAAlV,OAAAS,OAAAA,MAAAT,EAAA,CAAA,GAXDQ,KAAAqV,KAAI5Z,MAAA8C,QAAAb,IAAmBuC,GAWtB,GAACT,OAAAyV,cAAAzV,EAAA6V,CAAAA,IAAAA,KAAA5Z,MAAAM,MAAAyD,EAAA6V,CAAAA,IAAAA,KAAA5Z,MAAA8C,SAAAiB,OAAAkV,cAAAlV,OAAAQ;AAAAA,EAAA;AAAAA,SAAAR,EAAA,CAAA;AAXFQ,OAAAA;AAFJ,QAAAgF,WAAiBpF;AAehBK,MAAAA;AAAAT,IAAA,CAAA,MAAAK,OAAAC,IAAA,2BAAA,KAKaG,KAAA,CAAA,GAAA,GAAA,CAAA,GAAST,OAAAS,MAAAA,KAAAT,EAAA,CAAA;AAAAa,MAAAA;AAAAb,SAAAA,EAAA,EAAA,MAAAwF,YAAAxF,EAAA,EAAA,MAAAmQ,YAAAnQ,EAAA,EAAA,MAAA6V,KAAArZ,SAFrBqE,oCAACkV,aACW5F,EAAAA,UACA,UAAA1P,IACD,SAAA,GACH,MAAAoV,KAAIrZ,OACH,QAAA,YAENgJ,UACH,GAAWxF,QAAAwF,UAAAxF,QAAAmQ,UAAAnQ,EAAA,EAAA,IAAA6V,KAAArZ,OAAAwD,QAAAa,MAAAA,KAAAb,EAAA,EAAA,GARXa;AAQW,CAEd,GCzIK+N,SAAOC,wBAAOhF,OAAI;AAAA;AAAA;AAAA,kCAGU,CAAC;AAAA,EAACwE;AAAK,MAAMA,MAAMC,OAAOQ,MAAM,CAAC,CAAC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,GAQ9DoH,gBAAqC;AAAA,EAAC/G,MAAM;AAAM,GAClDgH,sBAA2C;AAAA,EAAC5V,YAAY;AAAC,GACzD6V,oBAAoB,CAAC,GAAG,GAAG,CAAC,GAGrBC,oBAAoBtW,MAAAA,KAAK,SAAAJ,OAAA;AAAAK,QAAAA,IAAAC,uBAAA,EAAA,GAIpC;AAAA,IAAA8H,aAAA3H;AAAAA,IAAA+P;AAAAA,EAAAA,IAAqCxQ;AAAKa,MAAAA;AAAAR,WAAAI,MAAnCI,KAAAJ,OAAgBmB,UAAhBnB,IAAAA,IAAgBJ,OAAAI,IAAAJ,OAAAQ,MAAAA,KAAAR,EAAA,CAAA;AAAhB,QAAA+H,cAAAvH,IACP;AAAA,IAAAkF;AAAAA,IAAArH;AAAAA,MAA4B8E,YAAY;AAAC,MAAA1C,IAAAI;AAAAb,IAAA+H,CAAAA,MAAAA,eAAA/H,SAAA3B,UACdwC,KAAAyT,UAAUvM,aAAa1J,MAAM,GAAC2B,OAAA+H,aAAA/H,OAAA3B,QAAA2B,OAAAa,MAAAA,KAAAb,EAAA,CAAA,GAAAS,KAA9BI;AAA3B,QAAAyV,OAAa7V,IACb,CAAA0L,OAAAoK,QAAA,IAA0BxQ,eAAS,EAAE;AAAC9E,MAAAA;AAAA,OAAA;AAAA,QAAA,CAG/BkL,OAAK;AAAEjQ,WAAAA;AAAkB6F,YAAAA;AAAAA,IAAAA;AAAAgH,QAAAA;AAAA,QAAA/I,EAAAmM,CAAAA,MAAAA,SAAAnM,SAAA3B,QAAA;AAE9BT,YAAAA,IAAUuO,MAAKqK,YAAa;AAE5BzN,YAAA,CAAA;AAA8D,iBAEzD9M,SAAeoC;AAAM,mBACnBS,SAAe7C,MAAK8C;AAAA,WACnB9C,MAAKO,OAAAga,YAAAC,EAAAA,SAA+B7Y,CAAC,KAAKkB,MAAKtC,MAAAga,YAAoBC,EAAAA,SAAU7Y,CAAC,MAChFmL,IAAGiD,KAAA;AAAA,YAAA/P;AAAAA,YAAA6C;AAAAA,UAAAA,CAAoB;aAACqN,OAAAnM,OAAA3B,QAAA2B,OAAA+I;AAAAA,IAAA;AAAAA,YAAA/I,EAAA,CAAA;AAKvB+I,SAAAA;AAAAA,EAAAA;AAfT,QAAAkM,UAAgBhU;AAgBGE,MAAAA;AAAAnB,IAAA,CAAA,MAAAK,OAAAC,IAAA,2BAAA,KAGjBa,KAAAT,CAAgD6V,UAAAA,SAAS7V,MAAKC,cAAA9D,KAAoB,GAACmD,OAAAmB,MAAAA,KAAAnB,EAAA,CAAA;AADrF,QAAA0W,0BAAgCvV;AAG/BiB,MAAAA;AAAApC,IAAA,CAAA,MAAAK,OAAAC,IAAA,2BAAA,KAE0C8B,KAAAA,MAAMmU,SAAS,EAAE,GAACvW,OAAAoC,MAAAA,KAAApC,EAAA,CAAA;AAA7D,QAAA2W,yBAA+BvU;AAAmCE,MAAAA;AAAAtC,YAAA0F,aAGhEpD,KAAAsU,CAAA,YAAA;AACElW,YAAKuQ,eAAgB;AAGrB,UAAAyE,aADehV,QAAKC,cACKgV,aAAc,WAAW;AAE9CD,mBACFhQ,UAAS;AAAA,MAAA/C,MAAQ;AAAA,MAAkB9F,OAAS6Y;AAAAA,IAAAA,CAAW,GAEvDa,SAAS,EAAE;AAAA,EAAC,GAEfvW,QAAA0F,WAAA1F,QAAAsC,MAAAA,KAAAtC,EAAA,EAAA;AAZH,QAAA4V,mBAAyBtT;AAcxB+D,MAAAA;AAAA,SAAArG,EAAAmQ,EAAAA,MAAAA,YAAAnQ,EAAA,EAAA,MAAA4V,oBAAA5V,EAAAiV,EAAAA,MAAAA,WAAAjV,EAAA,EAAA,MAAAsW,QAAAtW,UAAAmM,SAGC9F,oCAAC,eACW8J,EAAAA,UACD8E,SACHqB,MACeI,8CACDC,4CACNf,gCACPzJ,MACP,CAAA,GAAAnM,QAAAmQ,UAAAnQ,QAAA4V,kBAAA5V,QAAAiV,SAAAjV,QAAAsW,MAAAtW,QAAAmM,OAAAnM,QAAAqG,MAAAA,KAAArG,EAAA,EAAA,GARFqG;AAQE,CAEL,GAEKwQ,gBAAgB9W,MAAAA,KAAK,SAAAJ,OAAA;AAAAK,QAAAA,IAAAC,uBAAA,EAAA,GASzB;AAAA,IAAAkQ;AAAAA,IAAA8E;AAAAA,IAAAqB;AAAAA,IAAAQ;AAAAA,IAAAC;AAAAA,IAAA7B;AAAAA,IAAA/I;AAAAA,EAAAA,IACExM;AAAK,MAAAS,IAAAI;AAAAR,WAAAmQ,YAGE3P,KAAA2P,WAAQ,CAAI,OAAO,IAAA,CAAK,QAAQ,QAAQ,OAAO,GAACnQ,OAAAmQ,UAAAnQ,OAAAQ,MAAAA,KAAAR,EAAA,CAAA,GAAAI,KAAhDI;AADTkQ,QAAAA,UAA8BtQ,IAYLK,KAAA9B,CAAQwN,CAAAA;AAAMtL,MAAAA;AAAAb,IAAA,CAAA,MAAA8W,uBAAA9W,EAAA+W,CAAAA,MAAAA,sBAAA/W,EAAAmM,CAAAA,MAAAA,SAAAnM,SAAAS,MAJjCI,oCAAC4O,GAAayG,OAAAA,EAAAA,OAAAA,eACZ,UAACpV,2BAAAA,IAAA+I,GAAAA,MAAA,EAAc,SAAA,GAAW,WAAUsM,OAAAA,qBAClC,UAAArV,2BAAA,IAACW,gBACS,QAAI,IACC,aAAAhB,IACH2V,UAAgBA,mBACpBY,MAASA,kBACLF,+BACDC,6BACA,SAAA,GACG,aAAA,WACJ,QAAA,GACD,UACA5K,OAAAA,MAEX,CAAA,EAAA,CAAA,EACF,CAAA,GAAQnM,OAAA8W,qBAAA9W,OAAA+W,oBAAA/W,OAAAmM,OAAAnM,OAAAS,IAAAT,OAAAa,MAAAA,KAAAb,EAAA,CAAA;AAAAiB,MAAAA;AAAAjB,IAAAiV,CAAAA,MAAAA,WAAAjV,SAAAkV,gBAAAlV,EAAA,CAAA,MAAAmM,SAGLlL,KAAAkL,SAAS8I,QAAOpW,SAAW,KACzBiC,2BAAAA,IAAAC,GAAA,KAAA,EAAa,SAAC,GACb,UAAAD,2BAAA,IAAC,iBAAuBmU,SAAuBC,aACjD,CAAA,GAAA,GACDlV,OAAAiV,SAAAjV,OAAAkV,cAAAlV,OAAAmM,OAAAnM,QAAAiB,MAAAA,KAAAjB,EAAA,EAAA;AAAAmB,MAAAA;AAAAnB,IAAAsW,EAAAA,MAAAA,QAAAtW,UAAAmM,SAEAhL,KAACgL,CAAAA,SAASmK,KAAI3T,SAAU,UACtB7B,+BAAAC,GAAAA,KAAA,EAAa,SAAC,GACb,UAAAD,2BAAA,IAAC,WAAiB,EAAA,OAAAwV,KAAInC,MACxB,CAAA,EAAA,CAAA,GACDnU,QAAAsW,MAAAtW,QAAAmM,OAAAnM,QAAAmB,MAAAA,KAAAnB,EAAA,EAAA;AAAAoC,MAAAA;AAAApC,IAAAiB,EAAAA,MAAAA,MAAAjB,UAAAmB,MAXHiB,KAAChB,2BAAAA,KAAAyI,GAAAA,MAAA,EAAW,MAAA,GAAY,UAAA,QACrB5I,UAAAA;AAAAA,IAAAA;AAAAA,IAMAE;AAAAA,EAAAA,EAKH,CAAA,GAAOnB,QAAAiB,IAAAjB,QAAAmB,IAAAnB,QAAAoC,MAAAA,KAAApC,EAAA,EAAA;AAAAsC,MAAAA;AAAAtC,IAAAa,EAAAA,MAAAA,MAAAb,UAAAoC,MA/BTE,KAAClB,2BAAAA,KAAAC,GAAAA,MAAA,EAAe,WAAA,UAAgB,QAAA,QAC9BR,UAAAA;AAAAA,IAAAA;AAAAA,IAkBAuB;AAAAA,EAAAA,EAaF,CAAA,GAAOpC,QAAAa,IAAAb,QAAAoC,IAAApC,QAAAsC,MAAAA,KAAAtC,EAAA,EAAA;AAAAqG,MAAAA;AAAA,SAAArG,EAAA0Q,EAAAA,MAAAA,WAAA1Q,UAAAsC,MAjCT+D,oCAACuI,QAAc8B,EAAAA,SAAe,SAC5BpO,UAAAA,GAiCF,CAAA,GAAOtC,QAAA0Q,SAAA1Q,QAAAsC,IAAAtC,QAAAqG,MAAAA,KAAArG,EAAA,EAAA,GAlCPqG;AAkCO,CAEV,GC1IK4Q,QAAQpI,gBAAOqI,QAAAA;AAAAA;AAAAA;AAAAA;AAAAA;AAAAA,GAQR5N,iBAAiBvJ,MAAAA,KAAK,SAAAJ,OAAA;AAAAK,QAAAA,IAAAC,uBAAA,EAAA,GAIjC;AAAA,IAAAkX;AAAAA,IAAAC;AAAAA,MAA2BzX,OAC3B;AAAA,IAAAiI;AAAAA,IAAAI;AAAAA,IAAA1J;AAAAA,IAAAa;AAAAA,IAAAC;AAAAA,IAAA5C;AAAAA,IAAA6C;AAAAA,IAAAC;AAAAA,EAAAA,IAA6E6D,eAC7EkU,iBAAuB/a,iBAAAkU,KAAAkC,CAAAA,MAA6BA,EAACnW,SAAU8C,QAAQ,KAAC/C,iBAAuB,CAAA,GAC/Fgb,YAAkBD,gBAAc5a,KAAAC,OAChC6a,YAAkBF,gBAAc5a,KAAAE;AAAayD,MAAAA;AAAAJ,WAAAgI,YAAAhI,EAAA1B,CAAAA,MAAAA,QAAA0B,EAAAb,CAAAA,MAAAA,WAAAa,EAAA,CAAA,MAAAZ,UAAAY,SAAAX,YAAAW,EAAA,CAAA,MAAAV,QAEVc,KAAAA,MACjCnB,cAAA;AAAA,IAAAC,SAAwB8I;AAAAA,IAAQ1J;AAAAA,IAAAa;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,EAAwC,CAAA,GAACU,OAAAgI,UAAAhI,OAAA1B,MAAA0B,OAAAb,SAAAa,OAAAZ,QAAAY,OAAAX,UAAAW,OAAAV,MAAAU,OAAAI,MAAAA,KAAAJ,EAAA,CAAA;AAD3E,QAAA,CAAAwX,eAAA,IAA0BzR,MAAAA,SAAS3F,EAEnC;AAACI,MAAAA;AAIa,QAAAC,KAAA6W,cAAc,SAAM/V,SAAe,IAAI+V,aAAc,KAAIhY,IAAI,MAC5DuB,KAAA0W,YAAY,IAAIA,aAAS,KAASjY,IAAI,OAAIiC;AAAYN,MAAAA;AAAAjB,IAAAS,CAAAA,MAAAA,MAAAT,SAAAa,MAF5DI,KAAA;AAAA,IAAAwW,UACKhX;AAAAA,IAAiEiX,WAChE7W;AAAAA,EAAAA,GACZb,OAAAS,IAAAT,OAAAa,IAAAb,OAAAiB,MAAAA,KAAAjB,EAAA,CAAA,GAAAQ,KAHMS;AADT,QAAA0W,iBAAuBnX;AAMtBW,MAAAA;AAAAA,OAE0CiW,SAAS,SAAS;AAA7D,QAAA1G,UAA4BvP;AAAoDiB,MAAAA;AAIjE,QAAAE,KAAShD,SAAAA,IAAI,KAEjB+G,KAAA,GAAG,MAAM/G,IAAI,KACZoH,KAAA,GAAG,MAAMpH,IAAI;AAAGmH,MAAAA;AAAAzG,IAAAsC,EAAAA,MAAAA,MAAAtC,UAAAqG,MAAArG,EAAA,EAAA,MAAA0G,MAJnBD,MAAA;AAAA,IAAAmR,WACMtV;AAAAA,IAAgBuV,iBACV;AAAA,IAAKnb,OACf2J;AAAAA,IAAgB1J,QACf+J;AAAAA,EAAAA,GACT1G,QAAAsC,IAAAtC,QAAAqG,IAAArG,QAAA0G,IAAA1G,QAAAyG,OAAAA,MAAAzG,EAAA,EAAA,GAAAoC,KALMqE;AADT,QAAAqR,aAAmB1V;AAQlByE,MAAAA;AAAA7G,IAAA1B,EAAAA,MAAAA,QAAA0B,UAAAxD,SAKMqK,MAAAvI,SAAS,OACPwC,2BAAA,IAAAiX,cAAA,EAAiB,OAAA,GAChB,UAAA3W,gCAACuJ,GAAAA,SAAe,SAAA,GAAU,OAAA,GACxB,UAAA;AAAA,IAAC7J,2BAAA,IAAAyJ,GAAA,SAAA,EAAc,OAAA,UAAU/N,UAAM,OAAA;AAAA,mCAC9B0E,GAAAA,MAAW,EAAA,OAAA,UAAS,OAAI,IAAE,UAE3B,wDAAA,CAAA;AAAA,EAAA,EACF,CAAA,EACF,CAAA,GACDlB,QAAA1B,MAAA0B,QAAAxD,OAAAwD,QAAA6G,OAAAA,MAAA7G,EAAA,EAAA;AAAA8G,MAAAA;AAAA9G,IAAA4H,EAAAA,MAAAA,cAAA5H,UAAA1B,QAEAwI,MAACc,CAAAA,cAActJ,SAAS,sCAAQ6L,GAAAA,SAAQ,EAAA,OAAA,GAAQ,CAAA,GAAAnK,QAAA4H,YAAA5H,QAAA1B,MAAA0B,QAAA8G,OAAAA,MAAA9G,EAAA,EAAA;AAIvCiH,QAAAA,MAACW,CAAAA,cAActJ,SAAS;AAAGwO,MAAAA;AAAA9M,IAAAmX,EAAAA,MAAAA,YAAAnX,UAAA8X,cAAA9X,EAAA,EAAA,MAAAwX,mBAInC1K,qCAACjD,SAAY,EAAA,QAAA,QAAe,QAAA,GAC1B,UAAC/I,2BAAA,IAAA,OAAA,EAAWqW,KAAAA,UAAeK,sBAAwBM,OAAS,YAC9D,EAAA,CAAA,GAAO9X,QAAAmX,UAAAnX,QAAA8X,YAAA9X,QAAAwX,iBAAAxX,QAAA8M,OAAAA,MAAA9M,EAAA,EAAA;AAAA+M,MAAAA;AAAA/M,IAAA2X,EAAAA,MAAAA,kBAAA3X,UAAAiH,OAAAjH,EAAA,EAAA,MAAA8M,OARTC,MAACjM,2BAAAA,IAAAiX,GAAA,WAAA,EACQ,QAAA,QACC,QAAA9Q,KACD0Q,OAAa,gBACd,OAAA,QAEN7K,UAAAA,IAGF,CAAA,GAAY9M,QAAA2X,gBAAA3X,QAAAiH,KAAAjH,QAAA8M,KAAA9M,QAAA+M,OAAAA,MAAA/M,EAAA,EAAA;AAAAgN,MAAAA;AAAAhN,IAAA6G,EAAAA,MAAAA,OAAA7G,UAAA8G,OAAA9G,EAAA,EAAA,MAAA+M,OAvBdC,MAAC5L,2BAAA,KAAAC,WAAW,OAAA,UAAgB,QAAA,QAAe,SAAA,UAAgB,QAAA,UACxDwF,UAAAA;AAAAA,IAAAA;AAAAA,IAWAC;AAAAA,IAEDiG;AAAAA,EAAAA,GAUF,GAAO/M,QAAA6G,KAAA7G,QAAA8G,KAAA9G,QAAA+M,KAAA/M,QAAAgN,OAAAA,MAAAhN,EAAA,EAAA;AAAAkN,MAAAA;AAAA,SAAAlN,EAAA0Q,EAAAA,MAAAA,WAAA1Q,UAAAgN,OAzBTE,qCAACrD,GAAAA,MAAc6G,EAAAA,SAAe,MAAC,GAAW,UAAA,UAAc,MAAA,eACtD1D,UAAAA,IAyBF,CAAA,GAAOhN,QAAA0Q,SAAA1Q,QAAAgN,KAAAhN,QAAAkN,OAAAA,MAAAlN,EAAA,EAAA,GA1BPkN;AA0BO,CAEV;ACnEM,SAAS8K,gCAAyD;AACjEhN,QAAAA,mCAAmBhO,IAAgC;AAEzD,MAAIib,gBAA0C,MAC1ChN,YAA2B,IAC3BC,gBAAuC;AAE3C,WAASC,SAAS;AACZD,qBACFE,cAAcF,aAAa,GAG7BA,gBAAgBG,WAAW,MAAM;AAChB6M,qBAAAA,eAAe3M,YAAYN,WAAW3H,OAAO8I,SAASvE,MAAM,GAC3EoD,YAAY,CAAE,GACdC,gBAAgB;AAAA,OACf,CAAC;AAAA,EAAA;AAGN,WAASM,eAAe9K,OAA8B;AACpD,UAAM+K,OAAO/K,MAAMgL;AAEnB,QAAId,QAAQa,IAAI;AACd,iBAAWvO,OAAOuO;AACZX,YAAAA,SAAS5N,GAAG,KAAK,OAAOA,IAAIyF,QAAS,YAAYzF,IAAIyF,KAAKgJ,WAAW,WAAW;AAClF,qBAAWxO,cAAc6N;AACvB7N,uBAAWD,GAA6B;AAAA;AAAA,EAAA;AAOlD,WAAS0O,SAAS;AACZqM,mBAAeC,iBACjB5U,OAAOuI,iBAAiB,WAAWL,cAAc;AAAA,EAAA;AAIrD,WAASM,SAASqM,IAAuB;AACnCA,QAAID,iBACN5U,OAAOyI,oBAAoB,WAAWP,cAAc;AAAA,EAAA;AAIjD,SAAA;AAAA,IACLlB,SAAS;AAAA,MACPrN,QAAQC,KAAK;AACD8O,kBAAAA,KAAK9O,GAAG,GAClBiO,OAAO;AAAA,MACT;AAAA,MACA/N,UAAUD,YAAY;AACPE,eAAAA,aAAAA,IAAIF,UAAU,GAEpB,MAAM;AACX6N,uBAAa1N,OAAOH,UAAU;AAAA,QAChC;AAAA,MAAA;AAAA,IAEJ;AAAA,IACAib,WAAWD,IAAI;AACb,YAAME,mBAAmBJ;AAEzBA,sBAAgBE,IAEZA,KACFvM,OACSyM,IAAAA,oBACTvM,SAASuM,gBAAgB;AAAA,IAAA;AAAA,EAG/B;AACF;AClDA,SAASnM,qBACPoB,KACAgL,YACA1Q,YACe;AACf,QAAMtJ,OAAOgP,IAAIhP,MACX6N,QAAQmB,IAAInB,SAAS,IACrB;AAAA,IAAC/M;AAAAA,IAAQC;AAAAA,IAAUC;AAAAA,IAAM,GAAGH;AAAAA,EAAAA,IAAWgN;AAEtC,SAAA;AAAA,IACLvE,YAAYA,cAAc;AAAA,IAC1BtJ;AAAAA,IACAa;AAAAA,IACAC,QAAQkZ,eAAe,OAAOlZ,UAAW,WAAYA,SAAiC;AAAA,IACtFC,UAAU,OAAOA,YAAa,WAAWA,WAAW;AAAA,IACpDC,MAAM,OAAOA,QAAS,WAAWA,OAAO;AAAA,EAC1C;AACF;AAEA,SAASiZ,kBAAkBpT,OAAsBqT,cAAc,IAAqB;AAC5E,QAAA;AAAA,IAACrZ;AAAAA,IAASC;AAAAA,IAAQC;AAAAA,IAAUC;AAAAA,EAAAA,IAAQ6F,OAEpCgH,QAAuB;AAAA,IAAC/M;AAAAA,EAAM;AAEhCC,MAAAA,YAAYA,aAAajD,2BAC3B+P,MAAM9M,WAAWA,WAGfC,QAAQA,SAASjD,uBACnB8P,MAAM7M,OAAOA,OAGXkZ;AACF,eAAW,CAAC1a,KAAKiH,GAAG,KAAK/G,OAAOC,QAAQkB,OAAO;AACzC,OAAC,UAAU,YAAY,MAAM,EAAEsX,SAAS3Y,GAAG,IAE7C2a,QAAQC,KACN,0DAA0D5a,GAAG,oBAC/D,IAGAqO,MAAMrO,GAAG,IAAIiH;AAKZoH,SAAAA;AACT;AAGawM,MAAAA,WAAW5Y,MAAAA,KAAK,SAAAJ,OAAA;AAAAK,QAAAA,IAAAC,uBAAA,EAAA,GAC3B;AAAA,IAAAnE;AAAAA,IAAA8c;AAAAA,IAAAC;AAAAA,IAAAzZ,QAAAkZ;AAAAA,EAAoE3Y,IAAAA,OACpEmZ,aAAmBhd,OAAMid,UAAAC,UAAyB;AAAA,MAAA5Y,IAAAI;AAAAR,IAAA,CAAA,MAAAK,OAAAC,IAAA,2BAAA,KACpBE,KAAA1D,aAAAA,GAA2BkD,OAAAQ,MAAAA,KAAAR,EAAA,CAAA,GAAAI,KAA3BI;AAA9B,QAAAiF,UAAgBrF;AAA8C,MAAAK,IAAAI;AAAAb,IAAA,CAAA,MAAAK,OAAAC,IAAA,2BAAA,KAClCO,KAAAmX,8BAAAA,GAA+BhY,OAAAa,MAAAA,KAAAb,EAAA,CAAA,GAAAS,KAA/BI;AAA5B,QAAAoY,QAAcxY,IACd,CAAAgM,iBAAAC,kBAAA,IAA8C3G,MAAAA,aAAoC,GAClF,CAAA4G,eAAAC,gBAAA,IAA0C7G,MAAAA,aAAoC;AAAC9E,MAAAA;AAAAjB,IAAA4Y,CAAAA,MAAAA,iBAAA5Y,SAAAsY,cAE7ErX,KAAAA,MAAMiL,qBAAqB0M,cAAa/K,IAAQyK,GAAAA,UAAU,GAACtY,OAAA4Y,eAAA5Y,OAAAsY,YAAAtY,OAAAiB,MAAAA,KAAAjB,EAAA,CAAA;AAD7D,QAAA,CAAAmB,IAAA2E,QAAA,IAAwEC,MAAAA,SACtE9E,EACF,GAFO;AAAA,IAAA2G;AAAAA,IAAAtJ;AAAAA,IAAAa;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,EAAA6B,IAAAA,IAGPqS,aAAmBC,GAAAA,cAAAA,GACnB,CAAAJ,mBAAA6F,oBAAA,IAAkDnT,iBAAc,GAChE,CAAAqN,mBAAA+F,oBAAA,IAAkDpT,iBAAc,GAChEqT,gBAAsBvT,MAAAA,OAAO+B,UAAU,GAEvCyR,YAAkBxT,MAAAA,OAAOzG,MAAM,GAC/Bka,UAAgBzT,MAAAA,OAAOvH,IAAI;AAAC8D,MAAAA;AAAApC,IAAA,CAAA,MAAAb,WAAAa,EAAAZ,CAAAA,MAAAA,UAAAY,EAAAX,CAAAA,MAAAA,YAAAW,SAAAV,QACW8C,KAAA;AAAA,IAAAhD;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAA,GAA4BH;AAAAA,EAAAA,GAAQa,OAAAb,SAAAa,OAAAZ,QAAAY,OAAAX,UAAAW,OAAAV,MAAAU,OAAAoC,MAAAA,KAAApC,EAAA,CAAA;AAA3EuZ,QAAAA,WAAiB1T,aAAsBzD,EAAoC;AAACE,MAAAA;AAAAtC,IAAA,EAAA,MAAAK,OAAAC,IAAA,2BAAA,KAG1EgC,KAAApF,CAAA,QAAA;AAEEuI,YAAOxI,QAASC,GAAG,GAGnB+b,MAAK3O,QAAArN,QAAiBC,GAAG;AAAA,EAAA,GAC1B8C,QAAAsC,MAAAA,KAAAtC,EAAA,EAAA;AAPH,QAAA0F,YAAkBpD;AASjB,MAAA+D,IAAAK;AAAA1G,YAAA4Y,iBAGOlS,KAAAoK,SAAAxD,CAAkDsL,QAAAA,cAAa5M,KAAMsB,GAAG,GAAC,GAAK,GAACtN,QAAA4Y,eAAA5Y,QAAA0G,MAAAA,KAAA1G,EAAA,EAAA,GAAAqG,KAA/EK;AADR,QAAA8S,gBAAsBnT;AAGrB,MAAAI,KAAAI;AAAA7G,YAAA4Y,iBAGO/R,MAAAiK,SAAA2I,CAAkDb,UAAAA,cAAa3P,QAASqE,KAAG,GAAC,GAAK,GAACtN,QAAA4Y,eAAA5Y,QAAA6G,OAAAA,MAAA7G,EAAA,EAAA,GAAAyG,MAAlFI;AADR,QAAA6S,mBAAyBjT;AAGxBK,MAAAA;AAAA9G,IAAA,EAAA,MAAAK,OAAAC,IAAA,2BAAA,KAEyCwG,MAAAA,MAAA;AACpB3E,yBAAAA,KAAU,GAC9BgX,uBAA0B;AAAA,EAAA,GAC3BnZ,QAAA8G,OAAAA,MAAA9G,EAAA,EAAA;AAHD,QAAA2Z,wBAA8B7S;AAGxBG,MAAAA;AAAAjH,IAAA,EAAA,MAAAK,OAAAC,IAAA,2BAAA,KAEoC2G,MAAAA,MAAA;2BACd,GAC1BkS,qBAAoB/I,MAAU;AAAA,EAAA,GAC/BpQ,QAAAiH,OAAAA,MAAAjH,EAAA,EAAA;AAHD,QAAA4Z,wBAA8B3S,KAK9B4S,gBAAsBhU,MAAAA,OAAO2N,UAAU;AAAC,MAAA1G,KAAAC;AAAA/M,YAAAwT,cAE9B1G,MAAAA,MAAA;AACe+M,kBAAajT,UAElB,KAAQ4M,cAAe,MACvC0F,uBAA0B,GAC1BC,uBAA0B,IAG5BU,cAAajT,UAAW4M;AAAAA,EAAU,GACjCzG,OAACyG,UAAU,GAACxT,QAAAwT,YAAAxT,QAAA8M,KAAA9M,QAAA+M,QAAAD,MAAA9M,EAAA,EAAA,GAAA+M,MAAA/M,EAAA,EAAA,IATfwG,gBAAUsG,KASPC,GAAY;AAACC,MAAAA;AAAAhN,IAAA,EAAA,MAAAK,OAAAC,IAAA,2BAAA,KAEN0M,MAAAA,MAAA;AACRkM,2BAA0B;AAAA,EAAA,GAC3BlZ,QAAAgN,OAAAA,MAAAhN,EAAA,EAAA;AAAAkN,MAAAA;AAAAlN,YAAA1B,QAAE4O,OAAC5O,IAAI,GAAC0B,QAAA1B,MAAA0B,QAAAkN,OAAAA,MAAAlN,EAAA,EAAA,GAFTwG,MAAAA,UAAUwG,KAEPE,GAAM;AAAC,MAAA4M,KAAAC;AAAA/Z,YAAAwZ,iBAGAM,MAAAA,MAAA,MAAYN,cAAaQ,OAAQ,GAAGD,OAACP,aAAa,GAACxZ,QAAAwZ,eAAAxZ,QAAA8Z,KAAA9Z,QAAA+Z,QAAAD,MAAA9Z,EAAA,EAAA,GAAA+Z,MAAA/Z,EAAA,EAAA,IAA7DwG,MAAAA,UAAUsT,KAAoCC,GAAe;AAAC,MAAAE,KAAAC;AAAAla,YAAA0Z,oBACpDO,MAAAA,MAAA,MAAYP,iBAAgBM,OAAQ,GAAGE,OAACR,gBAAgB,GAAC1Z,QAAA0Z,kBAAA1Z,QAAAia,KAAAja,QAAAka,QAAAD,MAAAja,EAAA,EAAA,GAAAka,MAAAla,EAAA,EAAA,IAAnEwG,MAAAA,UAAUyT,KAAuCC,GAAkB;AAACC,MAAAA;AAAAna,IAAAwZ,EAAAA,MAAAA,iBAAAxZ,UAAA0Z,oBAIlES,MAAAA,MACE1U,QAAOrI,UAAAyP,CAAA,UAAA;AAEL/G,aAAQQ,CAAA,cAAA;AACNC,YAAAA,YAAkB+B,gBAAgBhC,WAAWpJ,KAAG,GAChDkd,UAAiBpX,CAAAA,QAAQsD,WAAWC,SAAS;AAEzC6T,UAAAA;AAAO,YAELld,MAAGyF,SAAU;AACX2W,cAAAA,QAAO1S,YAAaL,UAASjI,MAAK;AACpCgb,oBAAO1S,UAAWL,UAASjI;AAG3B+b,kBAAAA,YAAkB9B,kBAAkBhS,aAAgB;AAEvC,0BAAA;AAAA,cAAAjI,MAAQiI,UAASjI;AAAAA,cAAA6N,OAAckO;AAAAA,YAAAA,CAAU;AAAA,UAAA;AAAA,mBAE/Cnd,MAAGyF,SAAU,qBAAmB;AAEzC2X,gBAAAA,cAAkB/B,kBAAkBhS,SAAS;AAExCvD,kBAAQuW,SAAQ3S,SAAUyT,WAAS,MACtCd,SAAQ3S,UAAWyT,aAEnBX,iBAAgB;AAAA,YAAApb,MAAQiI,UAASjI;AAAAA,YAAA6N,OAAckO;AAAAA,UAAAA,CAAU;AAAA,QAAA;AAAA;AAAC,aAKzDD,UAAU7T,YAAYD;AAAAA,IAAAA,CAC9B;AAAA,EAAA,CACF,GAACtG,QAAAwZ,eAAAxZ,QAAA0Z,kBAAA1Z,QAAAma,OAAAA,MAAAna,EAAA,EAAA;AAAAua,MAAAA;AAAAva,IAAAwZ,EAAAA,MAAAA,iBAAAxZ,UAAA0Z,oBAAA1Z,EAAA,EAAA,MAAA4Y,iBACJ2B,OAACf,eAAeE,kBAAkBjU,SAASmT,aAAa,GAAC5Y,QAAAwZ,eAAAxZ,QAAA0Z,kBAAA1Z,QAAA4Y,eAAA5Y,QAAAua,OAAAA,MAAAva,EAAA,EAAA,GAlC3DwG,MAAAA,UACE2T,KAiCAI,GACF;AAAC,MAAAC,KAAAC;AAAAza,IAAA,EAAA,MAAAK,OAAAC,IAAA,2BAAA,KAGSka,MAAAA,MAAMvB,MAAK3O,QAAAlN,UAAmBqI,QAAOxI,OAAQ,GAAGwd,MAAA,CAAChV,SAASwT,KAAK,GAACjZ,QAAAwa,KAAAxa,QAAAya,QAAAD,MAAAxa,EAAA,EAAA,GAAAya,MAAAza,EAAA,EAAA,IAA1EwG,MAAAA,UAAUgU,KAAgDC,GAAgB;AAAC,MAAAC,KAAAC;AAAA3a,YAAA4H,cAEjE8S,MAAAA,MAAA;AACRtB,kBAAaxS,UAAWgB;AAAAA,EAAU,GACjC+S,OAAC/S,UAAU,GAAC5H,QAAA4H,YAAA5H,QAAA0a,KAAA1a,QAAA2a,QAAAD,MAAA1a,EAAA,EAAA,GAAA2a,MAAA3a,EAAA,EAAA,IAFfwG,gBAAUkU,KAEPC,GAAY;AAAC,MAAAC,KAAAC;AAAA7a,IAAA4H,EAAAA,MAAAA,cAAA5H,UAAA4Y,iBAIdgC,MAAAA,MACEhC,cAAaxb,UAAA0d,CAAA,UAAA;AACX,UAAAC,cAAkB7O,qBAAqBoB,OAAG/L,QAAaqG,UAAU;AAExD,cAAA;AAAA,MAAAjF,MAAQ;AAAA,MAAmB9F,OAAS0J;AAAAA,IAAAA,CAAU;AAAA,EAAA,CACxD,GACHsU,MAACnV,CAAAA,WAAWkC,YAAYgR,aAAa,GAAC5Y,QAAA4H,YAAA5H,QAAA4Y,eAAA5Y,QAAA4a,KAAA5a,QAAA6a,QAAAD,MAAA5a,EAAA,EAAA,GAAA6a,MAAA7a,EAAA,EAAA,IAPxCwG,MAAAA,UACEoU,KAMAC,GACF;AAAC,MAAAG,KAAAC;AAAAjb,IAAA6Y,EAAAA,MAAAA,kBAAA7Y,UAAAZ,UAGS4b,MAAAA,MAAA;AACCpU,cAAAA,UAAWxH,QAGpByZ,eAAezZ,MAAM;AAAA,EACpB6b,GAAAA,MAAA,CAACpC,gBAAgBzZ,MAAM,GAACY,QAAA6Y,gBAAA7Y,QAAAZ,QAAAY,QAAAgb,KAAAhb,QAAAib,QAAAD,MAAAhb,EAAA,EAAA,GAAAib,MAAAjb,EAAA,EAAA,IAL3BwG,MAAAA,UAAUwU,KAKPC,GAAwB;AAAC,MAAAC,KAAAC;AAUD,MAVCnb,UAAAsY,cAGlB4C,MAAAA,MAAA;AACJ5C,kBACEe,UAASzS,YAAa0R,eACxBe,UAASzS,UAAW0R,YACpB5S,UAAS;AAAA,MAAA/C,MAAQ;AAAA,MAAoB9F,OAASyb;AAAAA,IAAAA,CAAW;AAAA,EAG5D6C,GAAAA,MAAA,CAACzV,WAAW4S,UAAU,GAACtY,QAAAsY,YAAAtY,QAAAkb,KAAAlb,QAAAmb,QAAAD,MAAAlb,EAAA,EAAA,GAAAmb,MAAAnb,EAAA,EAAA,IAP1BwG,MAAAA,UAAU0U,KAOPC,GAAuB,GAErBrf,CAAAA,OAAMuC,QAAA;AAAA+c,QAAAA;AAAA,WAAApb,EAAA,EAAA,MAAAK,OAAAC,IAAA,2BAAA,KACF8a,6DAAE,UAAS,YAAA,CAAA,GAAGpb,QAAAob,QAAAA,OAAApb,EAAA,EAAA,GAAdob;AAAAA,EAAAA;AAAcA,MAAAA;AAAApb,IAAA,EAAA,MAAAK,OAAAC,IAAA,2BAAA,KAwBJ8a,MAAA;AAAA,IAAAzH,UAAA;AAAA,EAAA,GAAe3T,QAAAob,OAAAA,MAAApb,EAAA,EAAA;AAAAqb,MAAAA;AAAArb,IAAAoT,EAAAA,MAAAA,qBAAApT,UAAAqT,qBAAArT,EAAA,EAAA,MAAA8Y,cAErBuC,MAAAvC,6CACE,gBACoB1F,EAAAA,mBACAC,mBACAuG,mBAAAA,uBACAD,mBAAoB,sBAE1C,CAAA,GAAA3Z,QAAAoT,mBAAApT,QAAAqT,mBAAArT,QAAA8Y,YAAA9Y,QAAAqb,OAAAA,MAAArb,EAAA,EAAA;AAAAsb,MAAAA;AAAAtb,YAAAlE,OAAAiM,eAAA/H,UAAAqT,qBAGCiI,MAACxa,2BAAA,IAAA,mBAA+B,EAAA,aAAAhF,OAAMiM,aAAwBsL,UAAAA,kBAAqB,CAAA,GAAArT,EAAA,EAAA,IAAAlE,OAAAiM,aAAA/H,QAAAqT,mBAAArT,QAAAsb,OAAAA,MAAAtb,EAAA,EAAA;AAGzE,QAAAub,MAAAlI,qBAAqBD;AAAiBoI,MAAAA;AAAAxb,YAAAub,OAFhDC,MAAC1a,2BAAAA,IAAA,gBAAA,EACW,UAAAmY,MAAKb,YACP,QAAAmD,IACR,CAAA,GAAAvb,QAAAub,KAAAvb,QAAAwb,OAAAA,MAAAxb,EAAA,EAAA;AAAAyb,MAAAA;AAAAzb,YAAAoT,qBACFqI,MAAC3a,2BAAAA,IAAA,mBAAA,EAA4BsS,UAAAA,kBAAqB,CAAA,GAAApT,QAAAoT,mBAAApT,QAAAyb,OAAAA,MAAAzb,EAAA,EAAA;AAAA0b,MAAAA;AAAA1b,IAAAsb,EAAAA,MAAAA,OAAAtb,UAAAwb,OAAAxb,EAAA,EAAA,MAAAyb,OANpDC,MAACta,2BAAA,KAAAC,GAAA,MAAA,EAAW,MAAA,GACVia,UAAAA;AAAAA,IAAAA;AAAAA,IACAE;AAAAA,IAIAC;AAAAA,EAAAA,GACF,GAAOzb,QAAAsb,KAAAtb,QAAAwb,KAAAxb,QAAAyb,KAAAzb,QAAA0b,OAAAA,MAAA1b,EAAA,EAAA;AAAA2b,MAAAA;AAAA3b,IAAA,EAAA,MAAAK,OAAAC,IAAA,2BAAA,KAEPqb,MAAA7a,+BAAA,OAAA,EAAiB,eAAA,IAAQ8L,KAAe,iBAAK,CAAA,GAAA5M,QAAA2b,OAAAA,MAAA3b,EAAA,EAAA;AAAA4b,MAAAA;AAAA5b,IAAAqb,EAAAA,MAAAA,OAAArb,UAAA0b,OAzB/CE,sCAACva,WACe,iBAAA,IACJ,WAAA,UACH,QAAA,QACFqL,KAAAA,oBACE,OAAA0O,KAENC,UAAAA;AAAAA,IAAAA;AAAAA,IASDK;AAAAA,IASAC;AAAAA,EAAAA,EACF,CAAA,GAAO3b,QAAAqb,KAAArb,QAAA0b,KAAA1b,QAAA4b,OAAAA,MAAA5b,EAAA,EAAA;AAAA6b,MAAAA;AAAA7b,IAAA2M,EAAAA,MAAAA,iBAAA3M,UAAA4b,OA3BTC,MAAC/a,2BAAA,IAAAmM,GAAwBN,gBAAAA,EAAAA,SAAAA,eACvBiP,UAAAA,KA2BF,GAAiB5b,QAAA2M,eAAA3M,QAAA4b,KAAA5b,QAAA6b,OAAAA,MAAA7b,EAAA,EAAA;AAAA8b,MAAAA;AAAA9b,IAAAyM,EAAAA,MAAAA,mBAAAzM,UAAA6b,OA9BrBC,MAAChb,2BAAAA,IAAAqM,GAAAA,eAAA,EACC,UAACrM,2BAAAA,IAAAsM,GAAAA,yBAAA,EAAiCX,SAAAA,iBAChCoP,UAAAA,IA6BF,CAAA,EACF,CAAA,GAAgB7b,QAAAyM,iBAAAzM,QAAA6b,KAAA7b,QAAA8b,OAAAA,MAAA9b,EAAA,EAAA;AAAA+b,MAAAA;AAAA,SAAA/b,EAAA,EAAA,MAAAlE,UAAAkE,EAAA,EAAA,MAAA4H,cAAA5H,EAAA,EAAA,MAAA1B,QAAA0B,EAAAb,EAAAA,MAAAA,WAAAa,EAAAZ,EAAAA,MAAAA,UAAAY,EAAA8b,EAAAA,MAAAA,OAAA9b,EAAAX,EAAAA,MAAAA,YAAAW,UAAAV,QA5ClByc,MAAAjb,2BAAAA,IAAC,oBACShF,QACG4J,WACFD,SACGmC,YACL,QAAA,QACDtJ,MACGa,SACDC,QACEC,UACJC,MAENwc,UAiCF,IAAA,CAAA,GAAmB9b,QAAAlE,QAAAkE,QAAA4H,YAAA5H,QAAA1B,MAAA0B,QAAAb,SAAAa,QAAAZ,QAAAY,QAAA8b,KAAA9b,QAAAX,UAAAW,QAAAV,MAAAU,QAAA+b,OAAAA,MAAA/b,EAAA,EAAA,GA7CnB+b;AA6CmB,CAEtB;AArM4B,SAAA5Z,MAAAL,GAAA;AAAA,SAAA,CAyCIA;AAAC;AAzCL,SAAAsO,OAAA4L,KAAA;AAAA,SAAA,CA+CIla;AAAC;ACxH3B,SAASma,MAAMra,SAAsE;AACpF,QAAA;AAAA,IAAC9F;AAAAA,IAAQogB;AAAAA,EAAAA,IAAWta;AAE1B,MAAI,CAACsa,QAAe,OAAA,IAAIrc,MAAM,iBAAiB;AAElCsc,SAAAA,WAAWD,OAAO,EAE1BE,OACHtb,2BAAAA,IAACub,MAAAA,cACC,UAACvb,2BAAAA,IAAA8N,QAAA,EAAK,OAAe,CAAA,EACvB,CAAA,CACF;AACF;AAEA,SAAAA,OAAAjP,OAAA;AAAAK,QAAAA,IAAAC,uBAAA,EAAA,GACE;AAAA,IAAAnE;AAAAA,EAAiB6D,IAAAA,OACjB2c,cAAoBC,GAAAA,eAAAA,GACpBnd,CAAAA,QAAAmN,SAAA,IAA4BxG,MAAAA,SAA8BuW,cAAc,SAAS,OAAO;AAAC,MAAAlc,IAAAI;AAAAR,IAAA,CAAA,MAAAK,OAAAC,IAAA,2BAAA,KACrDE,KAAAkN,oBAAAA,GAAqB1N,OAAAQ,MAAAA,KAAAR,EAAA,CAAA,GAAAI,KAArBI;AAApC,QAAAoY,gBAAsBxY;AAAwC,MAAAK,IAAAI;AAAAb,WAAAsc,eAEpD7b,KAAAA,MAAA;AACE6b,cAAAA,cAAc,SAAS,OAAO;AAAA,EAAC,GACxCzb,MAACyb,WAAW,GAACtc,OAAAsc,aAAAtc,OAAAS,IAAAT,OAAAa,OAAAJ,KAAAT,EAAA,CAAA,GAAAa,KAAAb,EAAA,CAAA,IAFhBwG,gBAAU/F,IAEPI,EAAa;AAGwBI,QAAAA,KAAAnF,OAAMuS,SAAAmO,GAAAA;AAAqBrb,MAAAA;AAAAnB,IAAA,CAAA,MAAAK,OAAAC,IAAA,2BAAA,KAC/Da,KAACL,2BAAA,IAAA,aAAA,CAAc,CAAA,GAAAd,OAAAmB,MAAAA,KAAAnB,EAAA,CAAA;AAAAoC,MAAAA;AAAApC,IAAAlE,CAAAA,MAAAA,UAAAkE,SAAAZ,UACfgD,KAAAtB,2BAAAA,IAAC,UACShF,EAAAA,QACO8c,eACPxZ,QACQmN,gBAAQ,UACxB,CAAA,GAAAvM,OAAAlE,QAAAkE,OAAAZ,QAAAY,OAAAoC,MAAAA,KAAApC,EAAA,CAAA;AAAAsC,MAAAA;AAAA,SAAAtC,EAAAZ,CAAAA,MAAAA,UAAAY,SAAAiB,MAAAjB,EAAA,EAAA,MAAAoC,MAPJE,qCAACma,GAAsBrd,eAAAA,EAAAA,QAAe,OAAA6B,IACpCE,UAAAA;AAAAA,IAAAA;AAAAA,IACAiB;AAAAA,EAAAA,GAMF,GAAgBpC,OAAAZ,QAAAY,OAAAiB,IAAAjB,QAAAoC,IAAApC,QAAAsC,MAAAA,KAAAtC,EAAA,EAAA,GARhBsC;AAQgB;AClCb,SAASoa,WAAW9a,SAAsE;AACzF,QAAA;AAAA,IAAC9F;AAAAA,IAAQogB;AAAAA,EAAAA,IAAWta;AAE1B,MAAI,CAACsa,QAAe,OAAA,IAAIrc,MAAM,iBAAiB;AAElCsc,SAAAA,WAAWD,OAAO,EAE1BE,OACHtb,2BAAAA,IAACub,MAAAA,cACC,UAACvb,2BAAAA,IAAA,MAAA,EAAK,OAAe,CAAA,EACvB,CAAA,CACF;AACF;AAEA,SAAA8N,KAAAjP,OAAA;AAAAK,QAAAA,IAAAC,uBAAA,CAAA,GACE;AAAA,IAAAnE;AAAAA,EAAAA,IAAiB6D,OACjB2c,cAAoBC,GAAAA,eAAe,GACnCnd,CAAAA,QAAAmN,SAAA,IAA4BxG,MAAAA,SAA8BuW,cAAc,SAAS,OAAO,GAGhDlc,KAAAtE,OAAMuS,SAAAmO,GAAAA;AAAqBhc,MAAAA;AAAAR,IAAA,CAAA,MAAAK,OAAAC,IAAA,2BAAA,KAC/DE,KAACM,2BAAA,IAAA,aAAA,CAAc,CAAA,GAAAd,OAAAQ,MAAAA,KAAAR,EAAA,CAAA;AAAAS,MAAAA;AAAAT,WAAAlE,UACf2E,KAACK,2BAAAA,IAAA,eAAA,EAAsBhF,QAAmByQ,UAAa,CAAA,GAAAvM,OAAAlE,QAAAkE,OAAAS,MAAAA,KAAAT,EAAA,CAAA;AAAAa,MAAAA;AAAA,SAAAb,EAAAZ,CAAAA,MAAAA,UAAAY,SAAAI,MAAAJ,EAAA,CAAA,MAAAS,MAFzDI,qCAAC4b,GAAsBrd,eAAAA,EAAAA,QAAe,OAAAgB,IACpCI,UAAAA;AAAAA,IAAAA;AAAAA,IACAC;AAAAA,EAAAA,GACF,GAAgBT,OAAAZ,QAAAY,OAAAI,IAAAJ,OAAAS,IAAAT,OAAAa,MAAAA,KAAAb,EAAA,CAAA,GAHhBa;AAGgB;AC1Bb8b,SAAAA,UAAApgB,MAAAqF,SAAA;AAAA5B,QAAAA,IAAAC,uBAAA,CAAA;AAAAG,MAAAA;AAAAJ,WAAA4B,WAI4BxB,KAAAwB,WAAa,CAAA5B,GAAAA,OAAA4B,SAAA5B,OAAAI,MAAAA,KAAAJ,EAAA,CAAA;AAA9C,QAAA;AAAA,IAAAiR,gBAAAzQ;AAAAA,EAAAA,IAAiCJ,IAA1B6Q,iBAAAzQ,OAAsBe,cAAtBf,IACP;AAAA,IAAAvE;AAAAA,IAAA6C;AAAAA,MAAuBqE,YAAY;AAAC1C,MAAAA;AAAA,SAAAT,EAAA,CAAA,MAAAzD,QAAAyD,EAAAiR,CAAAA,MAAAA,kBAAAjR,EAAA/D,CAAAA,MAAAA,SAAA+D,SAAAlB,SAGlC2B,KAAAA,IAAAI,OAAA;AAAC,UAAA+b,OAAA/b;AACK,QAAA,CAAC5E,SAAK,CAAK6C;AAAK;AAEpB+d,UAAAA,KAAgBD,KAAI,CAAA;AAEhB3L,sBAAkB,oBAAoB4L,MAAM,OAAOA,GAAE5L,kBAAoB,cAC3E4L,GAAE5L,eAAgB,GAIpBwH,QAAAqE,IAAY,IAAI7gB,MAAKM,IAAA,IAASuC,MAAKvC,IAAA,KAAUA,MAAI,GAAKqgB,IAAI;AAAA,EAAA,GAC3D5c,OAAAzD,MAAAyD,OAAAiR,gBAAAjR,OAAA/D,OAAA+D,OAAAlB,OAAAkB,OAAAS,MAAAA,KAAAT,EAAA,CAAA,GAZIS;AAcN;;;;;;;;;;;;;;;;;;;;;;;;;;;"}