{"version":3,"file":"Snackbar.cjs","sources":["../../node_modules/@mui/base/ClickAwayListener/ClickAwayListener.js","../../node_modules/@mui/base/Snackbar/snackbarClasses.js","../../node_modules/@mui/base/useSnackbar/useSnackbar.js","../../node_modules/@mui/base/Snackbar/Snackbar.js","../src/Snackbar/Snackbar.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { elementAcceptingRef, exactProp, unstable_ownerDocument as ownerDocument, unstable_useForkRef as useForkRef, unstable_useEventCallback as useEventCallback } from '@mui/utils';\n\n// TODO: return `EventHandlerName extends `on${infer EventName}` ? Lowercase<EventName> : never` once generatePropTypes runs with TS 4.1\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction mapEventPropToEvent(eventProp) {\n  return eventProp.substring(2).toLowerCase();\n}\nfunction clickedRootScrollbar(event, doc) {\n  return doc.documentElement.clientWidth < event.clientX || doc.documentElement.clientHeight < event.clientY;\n}\n/**\n * Listen for click events that occur somewhere in the document, outside of the element itself.\n * For instance, if you need to hide a menu when people click anywhere else on your page.\n *\n * Demos:\n *\n * - [Click-Away Listener](https://mui.com/base-ui/react-click-away-listener/)\n *\n * API:\n *\n * - [ClickAwayListener API](https://mui.com/base-ui/react-click-away-listener/components-api/#click-away-listener)\n */\nfunction ClickAwayListener(props) {\n  const {\n    children,\n    disableReactTree = false,\n    mouseEvent = 'onClick',\n    onClickAway,\n    touchEvent = 'onTouchEnd'\n  } = props;\n  const movedRef = React.useRef(false);\n  const nodeRef = React.useRef(null);\n  const activatedRef = React.useRef(false);\n  const syntheticEventRef = React.useRef(false);\n  React.useEffect(() => {\n    // Ensure that this component is not \"activated\" synchronously.\n    // https://github.com/facebook/react/issues/20074\n    setTimeout(() => {\n      activatedRef.current = true;\n    }, 0);\n    return () => {\n      activatedRef.current = false;\n    };\n  }, []);\n  const handleRef = useForkRef(\n  // @ts-expect-error TODO upstream fix\n  children.ref, nodeRef);\n\n  // The handler doesn't take event.defaultPrevented into account:\n  //\n  // event.preventDefault() is meant to stop default behaviors like\n  // clicking a checkbox to check it, hitting a button to submit a form,\n  // and hitting left arrow to move the cursor in a text input etc.\n  // Only special HTML elements have these default behaviors.\n  const handleClickAway = useEventCallback(event => {\n    // Given developers can stop the propagation of the synthetic event,\n    // we can only be confident with a positive value.\n    const insideReactTree = syntheticEventRef.current;\n    syntheticEventRef.current = false;\n    const doc = ownerDocument(nodeRef.current);\n\n    // 1. IE11 support, which trigger the handleClickAway even after the unbind\n    // 2. The child might render null.\n    // 3. Behave like a blur listener.\n    if (!activatedRef.current || !nodeRef.current || 'clientX' in event && clickedRootScrollbar(event, doc)) {\n      return;\n    }\n\n    // Do not act if user performed touchmove\n    if (movedRef.current) {\n      movedRef.current = false;\n      return;\n    }\n    let insideDOM;\n\n    // If not enough, can use https://github.com/DieterHolvoet/event-propagation-path/blob/master/propagationPath.js\n    if (event.composedPath) {\n      insideDOM = event.composedPath().indexOf(nodeRef.current) > -1;\n    } else {\n      insideDOM = !doc.documentElement.contains(\n      // @ts-expect-error returns `false` as intended when not dispatched from a Node\n      event.target) || nodeRef.current.contains(\n      // @ts-expect-error returns `false` as intended when not dispatched from a Node\n      event.target);\n    }\n    if (!insideDOM && (disableReactTree || !insideReactTree)) {\n      onClickAway(event);\n    }\n  });\n\n  // Keep track of mouse/touch events that bubbled up through the portal.\n  const createHandleSynthetic = handlerName => event => {\n    syntheticEventRef.current = true;\n    const childrenPropsHandler = children.props[handlerName];\n    if (childrenPropsHandler) {\n      childrenPropsHandler(event);\n    }\n  };\n  const childrenProps = {\n    ref: handleRef\n  };\n  if (touchEvent !== false) {\n    childrenProps[touchEvent] = createHandleSynthetic(touchEvent);\n  }\n  React.useEffect(() => {\n    if (touchEvent !== false) {\n      const mappedTouchEvent = mapEventPropToEvent(touchEvent);\n      const doc = ownerDocument(nodeRef.current);\n      const handleTouchMove = () => {\n        movedRef.current = true;\n      };\n      doc.addEventListener(mappedTouchEvent, handleClickAway);\n      doc.addEventListener('touchmove', handleTouchMove);\n      return () => {\n        doc.removeEventListener(mappedTouchEvent, handleClickAway);\n        doc.removeEventListener('touchmove', handleTouchMove);\n      };\n    }\n    return undefined;\n  }, [handleClickAway, touchEvent]);\n  if (mouseEvent !== false) {\n    childrenProps[mouseEvent] = createHandleSynthetic(mouseEvent);\n  }\n  React.useEffect(() => {\n    if (mouseEvent !== false) {\n      const mappedMouseEvent = mapEventPropToEvent(mouseEvent);\n      const doc = ownerDocument(nodeRef.current);\n      doc.addEventListener(mappedMouseEvent, handleClickAway);\n      return () => {\n        doc.removeEventListener(mappedMouseEvent, handleClickAway);\n      };\n    }\n    return undefined;\n  }, [handleClickAway, mouseEvent]);\n  return /*#__PURE__*/_jsx(React.Fragment, {\n    children: /*#__PURE__*/React.cloneElement(children, childrenProps)\n  });\n}\nprocess.env.NODE_ENV !== \"production\" ? ClickAwayListener.propTypes /* remove-proptypes */ = {\n  // ┌────────────────────────────── Warning ──────────────────────────────┐\n  // │ These PropTypes are generated from the TypeScript type definitions. │\n  // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n  // └─────────────────────────────────────────────────────────────────────┘\n  /**\n   * The wrapped element.\n   */\n  children: elementAcceptingRef.isRequired,\n  /**\n   * If `true`, the React tree is ignored and only the DOM tree is considered.\n   * This prop changes how portaled elements are handled.\n   * @default false\n   */\n  disableReactTree: PropTypes.bool,\n  /**\n   * The mouse event to listen to. You can disable the listener by providing `false`.\n   * @default 'onClick'\n   */\n  mouseEvent: PropTypes.oneOf(['onClick', 'onMouseDown', 'onMouseUp', 'onPointerDown', 'onPointerUp', false]),\n  /**\n   * Callback fired when a \"click away\" event is detected.\n   */\n  onClickAway: PropTypes.func.isRequired,\n  /**\n   * The touch event to listen to. You can disable the listener by providing `false`.\n   * @default 'onTouchEnd'\n   */\n  touchEvent: PropTypes.oneOf(['onTouchEnd', 'onTouchStart', false])\n} : void 0;\nif (process.env.NODE_ENV !== 'production') {\n  // eslint-disable-next-line\n  ClickAwayListener['propTypes' + ''] = exactProp(ClickAwayListener.propTypes);\n}\nexport { ClickAwayListener };","import { generateUtilityClass } from '../generateUtilityClass';\nimport { generateUtilityClasses } from '../generateUtilityClasses';\nconst COMPONENT_NAME = 'Snackbar';\nexport function getSnackbarUtilityClass(slot) {\n  return generateUtilityClass(COMPONENT_NAME, slot);\n}\nexport const snackbarClasses = generateUtilityClasses(COMPONENT_NAME, ['root']);","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport { unstable_useEventCallback as useEventCallback } from '@mui/utils';\nimport { extractEventHandlers } from '../utils/extractEventHandlers';\n/**\n * The basic building block for creating custom snackbar.\n *\n * Demos:\n *\n * - [Snackbar](https://mui.com/base-ui/react-snackbar/#hook)\n *\n * API:\n *\n * - [useSnackbar API](https://mui.com/base-ui/react-snackbar/hooks-api/#use-snackbar)\n */\nexport function useSnackbar(parameters = {}) {\n  const {\n    autoHideDuration = null,\n    disableWindowBlurListener = false,\n    onClose,\n    open,\n    resumeHideDuration\n  } = parameters;\n  const timerAutoHide = React.useRef();\n  React.useEffect(() => {\n    if (!open) {\n      return undefined;\n    }\n\n    /**\n     * @param {KeyboardEvent} nativeEvent\n     */\n    function handleKeyDown(nativeEvent) {\n      if (!nativeEvent.defaultPrevented) {\n        // IE11, Edge (prior to using Blink?) use 'Esc'\n        if (nativeEvent.key === 'Escape' || nativeEvent.key === 'Esc') {\n          // not calling `preventDefault` since we don't know if people may ignore this event e.g. a permanently open snackbar\n          onClose == null || onClose(nativeEvent, 'escapeKeyDown');\n        }\n      }\n    }\n    document.addEventListener('keydown', handleKeyDown);\n    return () => {\n      document.removeEventListener('keydown', handleKeyDown);\n    };\n  }, [open, onClose]);\n  const handleClose = useEventCallback((event, reason) => {\n    onClose == null || onClose(event, reason);\n  });\n  const setAutoHideTimer = useEventCallback(autoHideDurationParam => {\n    if (!onClose || autoHideDurationParam == null) {\n      return;\n    }\n    clearTimeout(timerAutoHide.current);\n    timerAutoHide.current = setTimeout(() => {\n      handleClose(null, 'timeout');\n    }, autoHideDurationParam);\n  });\n  React.useEffect(() => {\n    if (open) {\n      setAutoHideTimer(autoHideDuration);\n    }\n    return () => {\n      clearTimeout(timerAutoHide.current);\n    };\n  }, [open, autoHideDuration, setAutoHideTimer]);\n  const handleClickAway = event => {\n    onClose == null || onClose(event, 'clickaway');\n  };\n\n  // Pause the timer when the user is interacting with the Snackbar\n  // or when the user hide the window.\n  const handlePause = () => {\n    clearTimeout(timerAutoHide.current);\n  };\n\n  // Restart the timer when the user is no longer interacting with the Snackbar\n  // or when the window is shown back.\n  const handleResume = React.useCallback(() => {\n    if (autoHideDuration != null) {\n      setAutoHideTimer(resumeHideDuration != null ? resumeHideDuration : autoHideDuration * 0.5);\n    }\n  }, [autoHideDuration, resumeHideDuration, setAutoHideTimer]);\n  const createHandleBlur = otherHandlers => event => {\n    const onBlurCallback = otherHandlers.onBlur;\n    onBlurCallback == null || onBlurCallback(event);\n    handleResume();\n  };\n  const createHandleFocus = otherHandlers => event => {\n    const onFocusCallback = otherHandlers.onFocus;\n    onFocusCallback == null || onFocusCallback(event);\n    handlePause();\n  };\n  const createMouseEnter = otherHandlers => event => {\n    const onMouseEnterCallback = otherHandlers.onMouseEnter;\n    onMouseEnterCallback == null || onMouseEnterCallback(event);\n    handlePause();\n  };\n  const createMouseLeave = otherHandlers => event => {\n    const onMouseLeaveCallback = otherHandlers.onMouseLeave;\n    onMouseLeaveCallback == null || onMouseLeaveCallback(event);\n    handleResume();\n  };\n  React.useEffect(() => {\n    // TODO: window global should be refactored here\n    if (!disableWindowBlurListener && open) {\n      window.addEventListener('focus', handleResume);\n      window.addEventListener('blur', handlePause);\n      return () => {\n        window.removeEventListener('focus', handleResume);\n        window.removeEventListener('blur', handlePause);\n      };\n    }\n    return undefined;\n  }, [disableWindowBlurListener, handleResume, open]);\n  const getRootProps = (externalProps = {}) => {\n    const externalEventHandlers = _extends({}, extractEventHandlers(parameters), extractEventHandlers(externalProps));\n    return _extends({\n      // ClickAwayListener adds an `onClick` prop which results in the alert not being announced.\n      // See https://github.com/mui/material-ui/issues/29080\n      role: 'presentation'\n    }, externalProps, externalEventHandlers, {\n      onBlur: createHandleBlur(externalEventHandlers),\n      onFocus: createHandleFocus(externalEventHandlers),\n      onMouseEnter: createMouseEnter(externalEventHandlers),\n      onMouseLeave: createMouseLeave(externalEventHandlers)\n    });\n  };\n  return {\n    getRootProps,\n    onClickAway: handleClickAway\n  };\n}","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"autoHideDuration\", \"children\", \"disableWindowBlurListener\", \"exited\", \"onBlur\", \"onClose\", \"onFocus\", \"onMouseEnter\", \"onMouseLeave\", \"open\", \"resumeHideDuration\", \"slotProps\", \"slots\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { ClickAwayListener } from '../ClickAwayListener';\nimport { unstable_composeClasses as composeClasses } from '../composeClasses';\nimport { getSnackbarUtilityClass } from './snackbarClasses';\nimport { useSnackbar } from '../useSnackbar';\nimport { useSlotProps } from '../utils';\nimport { useClassNamesOverride } from '../utils/ClassNameConfigurator';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = () => {\n  const slots = {\n    root: ['root']\n  };\n  return composeClasses(slots, useClassNamesOverride(getSnackbarUtilityClass));\n};\n/**\n *\n * Demos:\n *\n * - [Snackbar](https://mui.com/base-ui/react-snackbar/)\n * - [Snackbar](https://mui.com/joy-ui/react-snackbar/)\n * - [Snackbar](https://mui.com/material-ui/react-snackbar/)\n *\n * API:\n *\n * - [Snackbar API](https://mui.com/base-ui/react-snackbar/components-api/#snackbar)\n */\nconst Snackbar = /*#__PURE__*/React.forwardRef(function Snackbar(props, forwardedRef) {\n  const {\n      autoHideDuration = null,\n      children,\n      disableWindowBlurListener = false,\n      exited = true,\n      onClose,\n      open,\n      resumeHideDuration,\n      slotProps = {},\n      slots = {}\n    } = props,\n    other = _objectWithoutPropertiesLoose(props, _excluded);\n  const classes = useUtilityClasses();\n  const {\n    getRootProps,\n    onClickAway\n  } = useSnackbar(_extends({}, props, {\n    autoHideDuration,\n    disableWindowBlurListener,\n    onClose,\n    open,\n    resumeHideDuration\n  }));\n  const ownerState = props;\n  const Root = slots.root || 'div';\n  const rootProps = useSlotProps({\n    elementType: Root,\n    getSlotProps: getRootProps,\n    externalForwardedProps: other,\n    externalSlotProps: slotProps.root,\n    additionalProps: {\n      ref: forwardedRef\n    },\n    ownerState,\n    className: classes.root\n  });\n  const clickAwayListenerProps = useSlotProps({\n    elementType: ClickAwayListener,\n    externalSlotProps: slotProps.clickAwayListener,\n    additionalProps: {\n      onClickAway\n    },\n    ownerState\n  });\n\n  // ClickAwayListener doesn't support ownerState\n  delete clickAwayListenerProps.ownerState;\n\n  // So that we only render active snackbars.\n  if (!open && exited) {\n    return null;\n  }\n  return /*#__PURE__*/_jsx(ClickAwayListener, _extends({}, clickAwayListenerProps, {\n    children: /*#__PURE__*/_jsx(Root, _extends({}, rootProps, {\n      children: children\n    }))\n  }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Snackbar.propTypes /* remove-proptypes */ = {\n  // ┌────────────────────────────── Warning ──────────────────────────────┐\n  // │ These PropTypes are generated from the TypeScript type definitions. │\n  // │ To update them, edit the TypeScript types and run `pnpm proptypes`. │\n  // └─────────────────────────────────────────────────────────────────────┘\n  /**\n   * The number of milliseconds to wait before automatically calling the\n   * `onClose` function. `onClose` should then set the state of the `open`\n   * prop to hide the Snackbar. This behavior is disabled by default with\n   * the `null` value.\n   * @default null\n   */\n  autoHideDuration: PropTypes.number,\n  /**\n   * @ignore\n   */\n  children: PropTypes.node,\n  /**\n   * If `true`, the `autoHideDuration` timer will expire even if the window is not focused.\n   * @default false\n   */\n  disableWindowBlurListener: PropTypes.bool,\n  /**\n   * The prop used to handle exited transition and unmount the component.\n   * @default true\n   */\n  exited: PropTypes.bool,\n  /**\n   * Callback fired when the component requests to be closed.\n   * Typically `onClose` is used to set state in the parent component,\n   * which is used to control the `Snackbar` `open` prop.\n   * The `reason` parameter can optionally be used to control the response to `onClose`,\n   * for example ignoring `clickaway`.\n   *\n   * @param {React.SyntheticEvent<any> | Event} event The event source of the callback.\n   * @param {string} reason Can be: `\"timeout\"` (`autoHideDuration` expired), `\"clickaway\"`, or `\"escapeKeyDown\"`.\n   */\n  onClose: PropTypes.func,\n  /**\n   * If `true`, the component is shown.\n   */\n  open: PropTypes.bool,\n  /**\n   * The number of milliseconds to wait before dismissing after user interaction.\n   * If `autoHideDuration` prop isn't specified, it does nothing.\n   * If `autoHideDuration` prop is specified but `resumeHideDuration` isn't,\n   * we default to `autoHideDuration / 2` ms.\n   */\n  resumeHideDuration: PropTypes.number,\n  /**\n   * The props used for each slot inside the Snackbar.\n   * @default {}\n   */\n  slotProps: PropTypes.shape({\n    clickAwayListener: PropTypes.oneOfType([PropTypes.func, PropTypes.shape({\n      children: PropTypes.element.isRequired,\n      disableReactTree: PropTypes.bool,\n      mouseEvent: PropTypes.oneOf(['onClick', 'onMouseDown', 'onMouseUp', 'onPointerDown', 'onPointerUp', false]),\n      onClickAway: PropTypes.func,\n      touchEvent: PropTypes.oneOf(['onTouchEnd', 'onTouchStart', false])\n    })]),\n    root: PropTypes.oneOfType([PropTypes.func, PropTypes.object])\n  }),\n  /**\n   * The components used for each slot inside the Snackbar.\n   * Either a string to use a HTML element or a component.\n   * @default {}\n   */\n  slots: PropTypes.shape({\n    root: PropTypes.elementType\n  })\n} : void 0;\nexport { Snackbar };","import {\n  Snackbar as MuiSnackbar,\n  type SnackbarOwnerState,\n  type SnackbarProps as MuiSnackbarProps,\n} from '@mui/base/Snackbar';\nimport clsx from 'clsx';\nimport { useState } from 'react';\n\nimport type {\n  ComponentProps,\n  SlotComponentPropsWithoutOverride,\n} from '../components.ts';\nimport { assocDefaultStyle } from '../utils/assign-default-style.ts';\nimport { mergeRootSlotPropsToComponentProps } from '../utils/merge-root-slot-props-to-component-prop.ts';\n\ninterface SlotProps {\n  root?: SlotComponentPropsWithoutOverride<'div', SnackbarOwnerState>;\n}\n\nexport type SnackbarProps = ComponentProps<SlotProps, MuiSnackbarProps>;\n\nexport function Snackbar({\n  disableDefaultClasses,\n  open,\n  slotProps: givenSlotProps,\n  ...rest\n}: SnackbarProps) {\n  const [animationFinish, setAnimationFinish] = useState(true);\n  const slotProps = disableDefaultClasses\n    ? givenSlotProps\n    : assocDefaultStyle<SlotProps>({\n        slotWithDefaultClasses: {\n          root: clsx('tw-origin-center'),\n        },\n      })(givenSlotProps);\n  const rootProps = mergeRootSlotPropsToComponentProps()(slotProps, rest);\n  return (\n    <MuiSnackbar\n      open={open}\n      slotProps={slotProps}\n      {...rootProps}\n      exited={animationFinish}\n      onAnimationEnd={() => {\n        setAnimationFinish(open !== true);\n      }}\n      onAnimationStart={() => {\n        setAnimationFinish(false);\n      }}\n    />\n  );\n}\n\nexport type { SnackbarCloseReason } from '@mui/base/useSnackbar';\n"],"names":["mapEventPropToEvent","eventProp","clickedRootScrollbar","event","doc","ClickAwayListener","props","children","disableReactTree","mouseEvent","onClickAway","touchEvent","movedRef","React","nodeRef","activatedRef","syntheticEventRef","handleRef","useForkRef","handleClickAway","useEventCallback","insideReactTree","ownerDocument","insideDOM","createHandleSynthetic","handlerName","childrenPropsHandler","childrenProps","mappedTouchEvent","handleTouchMove","mappedMouseEvent","_jsx","elementAcceptingRef","PropTypes","exactProp","COMPONENT_NAME","getSnackbarUtilityClass","slot","generateUtilityClass","generateUtilityClasses","useSnackbar","parameters","autoHideDuration","disableWindowBlurListener","onClose","open","resumeHideDuration","timerAutoHide","handleKeyDown","nativeEvent","handleClose","reason","setAutoHideTimer","autoHideDurationParam","handlePause","handleResume","createHandleBlur","otherHandlers","onBlurCallback","createHandleFocus","onFocusCallback","createMouseEnter","onMouseEnterCallback","createMouseLeave","onMouseLeaveCallback","externalProps","externalEventHandlers","_extends","extractEventHandlers","_excluded","useUtilityClasses","slots","composeClasses","useClassNamesOverride","Snackbar","forwardedRef","exited","slotProps","other","_objectWithoutPropertiesLoose","classes","getRootProps","ownerState","Root","rootProps","useSlotProps","clickAwayListenerProps","disableDefaultClasses","givenSlotProps","rest","animationFinish","setAnimationFinish","useState","assocDefaultStyle","clsx","mergeRootSlotPropsToComponentProps","jsx","MuiSnackbar"],"mappings":"ujCAQA,SAASA,EAAoBC,EAAW,CACtC,OAAOA,EAAU,UAAU,CAAC,EAAE,YAAW,CAC3C,CACA,SAASC,EAAqBC,EAAOC,EAAK,CACxC,OAAOA,EAAI,gBAAgB,YAAcD,EAAM,SAAWC,EAAI,gBAAgB,aAAeD,EAAM,OACrG,CAaA,SAASE,EAAkBC,EAAO,CAChC,KAAM,CACJ,SAAAC,EACA,iBAAAC,EAAmB,GACnB,WAAAC,EAAa,UACb,YAAAC,EACA,WAAAC,EAAa,YACd,EAAGL,EACEM,EAAWC,EAAM,OAAO,EAAK,EAC7BC,EAAUD,EAAM,OAAO,IAAI,EAC3BE,EAAeF,EAAM,OAAO,EAAK,EACjCG,EAAoBH,EAAM,OAAO,EAAK,EAC5CA,EAAM,UAAU,KAGd,WAAW,IAAM,CACfE,EAAa,QAAU,EACxB,EAAE,CAAC,EACG,IAAM,CACXA,EAAa,QAAU,EAC7B,GACK,CAAE,CAAA,EACL,MAAME,EAAYC,EAAU,WAE5BX,EAAS,IAAKO,CAAO,EAQfK,EAAkBC,EAAgB,iBAACjB,GAAS,CAGhD,MAAMkB,EAAkBL,EAAkB,QAC1CA,EAAkB,QAAU,GAC5B,MAAMZ,EAAMkB,EAAAA,cAAcR,EAAQ,OAAO,EAKzC,GAAI,CAACC,EAAa,SAAW,CAACD,EAAQ,SAAW,YAAaX,GAASD,EAAqBC,EAAOC,CAAG,EACpG,OAIF,GAAIQ,EAAS,QAAS,CACpBA,EAAS,QAAU,GACnB,MACD,CACD,IAAIW,EAGApB,EAAM,aACRoB,EAAYpB,EAAM,eAAe,QAAQW,EAAQ,OAAO,EAAI,GAE5DS,EAAY,CAACnB,EAAI,gBAAgB,SAEjCD,EAAM,MAAM,GAAKW,EAAQ,QAAQ,SAEjCX,EAAM,MAAM,EAEV,CAACoB,IAAcf,GAAoB,CAACa,IACtCX,EAAYP,CAAK,CAEvB,CAAG,EAGKqB,EAAwBC,GAAetB,GAAS,CACpDa,EAAkB,QAAU,GAC5B,MAAMU,EAAuBnB,EAAS,MAAMkB,CAAW,EACnDC,GACFA,EAAqBvB,CAAK,CAEhC,EACQwB,EAAgB,CACpB,IAAKV,CACT,EACE,OAAIN,IAAe,KACjBgB,EAAchB,CAAU,EAAIa,EAAsBb,CAAU,GAE9DE,EAAM,UAAU,IAAM,CACpB,GAAIF,IAAe,GAAO,CACxB,MAAMiB,EAAmB5B,EAAoBW,CAAU,EACjDP,EAAMkB,EAAAA,cAAcR,EAAQ,OAAO,EACnCe,EAAkB,IAAM,CAC5BjB,EAAS,QAAU,EAC3B,EACM,OAAAR,EAAI,iBAAiBwB,EAAkBT,CAAe,EACtDf,EAAI,iBAAiB,YAAayB,CAAe,EAC1C,IAAM,CACXzB,EAAI,oBAAoBwB,EAAkBT,CAAe,EACzDf,EAAI,oBAAoB,YAAayB,CAAe,CAC5D,CACK,CAEL,EAAK,CAACV,EAAiBR,CAAU,CAAC,EAC5BF,IAAe,KACjBkB,EAAclB,CAAU,EAAIe,EAAsBf,CAAU,GAE9DI,EAAM,UAAU,IAAM,CACpB,GAAIJ,IAAe,GAAO,CACxB,MAAMqB,EAAmB9B,EAAoBS,CAAU,EACjDL,EAAMkB,EAAAA,cAAcR,EAAQ,OAAO,EACzC,OAAAV,EAAI,iBAAiB0B,EAAkBX,CAAe,EAC/C,IAAM,CACXf,EAAI,oBAAoB0B,EAAkBX,CAAe,CACjE,CACK,CAEL,EAAK,CAACA,EAAiBV,CAAU,CAAC,EACZsB,EAAI,kBAAA,IAAClB,EAAM,SAAU,CACvC,SAAuBA,EAAM,aAAaN,EAAUoB,CAAa,CACrE,CAAG,CACH,CACA,QAAQ,IAAI,WAAa,eAAetB,EAAkB,UAAmC,CAQ3F,SAAU2B,EAAmB,oBAAC,WAM9B,iBAAkBC,EAAS,UAAC,KAK5B,WAAYA,EAAAA,UAAU,MAAM,CAAC,UAAW,cAAe,YAAa,gBAAiB,cAAe,EAAK,CAAC,EAI1G,YAAaA,EAAAA,UAAU,KAAK,WAK5B,WAAYA,EAAS,UAAC,MAAM,CAAC,aAAc,eAAgB,EAAK,CAAC,CACnE,GACI,QAAQ,IAAI,WAAa,eAE3B5B,EAAkB,WAAgB,EAAI6B,EAAAA,UAAU7B,EAAkB,SAAS,GC5K7E,MAAM8B,EAAiB,WAChB,SAASC,EAAwBC,EAAM,CAC5C,OAAOC,EAAoB,qBAACH,EAAgBE,CAAI,CAClD,CAC+BE,EAAAA,uBAAuBJ,EAAgB,CAAC,MAAM,CAAC,ECWvE,SAASK,EAAYC,EAAa,GAAI,CAC3C,KAAM,CACJ,iBAAAC,EAAmB,KACnB,0BAAAC,EAA4B,GAC5B,QAAAC,EACA,KAAAC,EACA,mBAAAC,CACD,EAAGL,EACEM,EAAgBlC,EAAM,SAC5BA,EAAM,UAAU,IAAM,CACpB,GAAI,CAACgC,EACH,OAMF,SAASG,EAAcC,EAAa,CAC7BA,EAAY,mBAEXA,EAAY,MAAQ,UAAYA,EAAY,MAAQ,SAEtDL,GAAW,MAAQA,EAAQK,EAAa,eAAe,EAG5D,CACD,gBAAS,iBAAiB,UAAWD,CAAa,EAC3C,IAAM,CACX,SAAS,oBAAoB,UAAWA,CAAa,CAC3D,CACA,EAAK,CAACH,EAAMD,CAAO,CAAC,EAClB,MAAMM,EAAc9B,EAAAA,iBAAiB,CAACjB,EAAOgD,IAAW,CACtDP,GAAW,MAAQA,EAAQzC,EAAOgD,CAAM,CAC5C,CAAG,EACKC,EAAmBhC,EAAgB,iBAACiC,GAAyB,CAC7D,CAACT,GAAWS,GAAyB,OAGzC,aAAaN,EAAc,OAAO,EAClCA,EAAc,QAAU,WAAW,IAAM,CACvCG,EAAY,KAAM,SAAS,CAC5B,EAAEG,CAAqB,EAC5B,CAAG,EACDxC,EAAM,UAAU,KACVgC,GACFO,EAAiBV,CAAgB,EAE5B,IAAM,CACX,aAAaK,EAAc,OAAO,CACxC,GACK,CAACF,EAAMH,EAAkBU,CAAgB,CAAC,EAC7C,MAAMjC,EAAkBhB,GAAS,CAC/ByC,GAAW,MAAQA,EAAQzC,EAAO,WAAW,CACjD,EAIQmD,EAAc,IAAM,CACxB,aAAaP,EAAc,OAAO,CACtC,EAIQQ,EAAe1C,EAAM,YAAY,IAAM,CACvC6B,GAAoB,MACtBU,EAAiBN,GAAkDJ,EAAmB,EAAG,CAE5F,EAAE,CAACA,EAAkBI,EAAoBM,CAAgB,CAAC,EACrDI,EAAmBC,GAAiBtD,GAAS,CACjD,MAAMuD,EAAiBD,EAAc,OACrCC,GAAkB,MAAQA,EAAevD,CAAK,EAC9CoD,GACJ,EACQI,EAAoBF,GAAiBtD,GAAS,CAClD,MAAMyD,EAAkBH,EAAc,QACtCG,GAAmB,MAAQA,EAAgBzD,CAAK,EAChDmD,GACJ,EACQO,EAAmBJ,GAAiBtD,GAAS,CACjD,MAAM2D,EAAuBL,EAAc,aAC3CK,GAAwB,MAAQA,EAAqB3D,CAAK,EAC1DmD,GACJ,EACQS,EAAmBN,GAAiBtD,GAAS,CACjD,MAAM6D,EAAuBP,EAAc,aAC3CO,GAAwB,MAAQA,EAAqB7D,CAAK,EAC1DoD,GACJ,EACE1C,OAAAA,EAAM,UAAU,IAAM,CAEpB,GAAI,CAAC8B,GAA6BE,EAChC,cAAO,iBAAiB,QAASU,CAAY,EAC7C,OAAO,iBAAiB,OAAQD,CAAW,EACpC,IAAM,CACX,OAAO,oBAAoB,QAASC,CAAY,EAChD,OAAO,oBAAoB,OAAQD,CAAW,CACtD,CAGG,EAAE,CAACX,EAA2BY,EAAcV,CAAI,CAAC,EAc3C,CACL,aAdmB,CAACoB,EAAgB,KAAO,CAC3C,MAAMC,EAAwBC,EAAQ,SAAC,GAAIC,EAAAA,qBAAqB3B,CAAU,EAAG2B,EAAAA,qBAAqBH,CAAa,CAAC,EAChH,OAAOE,WAAS,CAGd,KAAM,cACZ,EAAOF,EAAeC,EAAuB,CACvC,OAAQV,EAAiBU,CAAqB,EAC9C,QAASP,EAAkBO,CAAqB,EAChD,aAAcL,EAAiBK,CAAqB,EACpD,aAAcH,EAAiBG,CAAqB,CAC1D,CAAK,CACL,EAGI,YAAa/C,CACjB,CACA,CClIA,MAAMkD,EAAY,CAAC,mBAAoB,WAAY,4BAA6B,SAAU,SAAU,UAAW,UAAW,eAAgB,eAAgB,OAAQ,qBAAsB,YAAa,OAAO,EAUtMC,EAAoB,IAAM,CAC9B,MAAMC,EAAQ,CACZ,KAAM,CAAC,MAAM,CACjB,EACE,OAAOC,EAAc,eAACD,EAAOE,wBAAsBrC,CAAuB,CAAC,CAC7E,EAaMsC,EAAwB7D,EAAM,WAAW,SAAkBP,EAAOqE,EAAc,CACpF,KAAM,CACF,iBAAAjC,EAAmB,KACnB,SAAAnC,EACA,0BAAAoC,EAA4B,GAC5B,OAAAiC,EAAS,GACT,QAAAhC,EACA,KAAAC,EACA,mBAAAC,EACA,UAAA+B,EAAY,CAAE,EACd,MAAAN,EAAQ,CAAE,CAChB,EAAQjE,EACJwE,EAAQC,EAA6B,8BAACzE,EAAO+D,CAAS,EAClDW,EAAUV,IACV,CACJ,aAAAW,EACA,YAAAvE,CACD,EAAG8B,EAAY2B,EAAAA,SAAS,CAAE,EAAE7D,EAAO,CAClC,iBAAAoC,EACA,0BAAAC,EACA,QAAAC,EACA,KAAAC,EACA,mBAAAC,CACD,CAAA,CAAC,EACIoC,EAAa5E,EACb6E,EAAOZ,EAAM,MAAQ,MACrBa,EAAYC,EAAAA,aAAa,CAC7B,YAAaF,EACb,aAAcF,EACd,uBAAwBH,EACxB,kBAAmBD,EAAU,KAC7B,gBAAiB,CACf,IAAKF,CACN,EACD,WAAAO,EACA,UAAWF,EAAQ,IACvB,CAAG,EACKM,EAAyBD,EAAAA,aAAa,CAC1C,YAAahF,EACb,kBAAmBwE,EAAU,kBAC7B,gBAAiB,CACf,YAAAnE,CACD,EACD,WAAAwE,CACJ,CAAG,EAMD,OAHA,OAAOI,EAAuB,WAG1B,CAACzC,GAAQ+B,EACJ,KAEW7C,EAAI,kBAAA,IAAC1B,EAAmB8D,WAAS,CAAA,EAAImB,EAAwB,CAC/E,SAAuBvD,EAAAA,kBAAAA,IAAKoD,EAAMhB,EAAAA,SAAS,CAAA,EAAIiB,EAAW,CACxD,SAAU7E,CAChB,CAAK,CAAC,CACH,CAAA,CAAC,CACJ,CAAC,EACD,QAAQ,IAAI,WAAa,eAAemE,EAAS,UAAmC,CAYlF,iBAAkBzC,EAAS,UAAC,OAI5B,SAAUA,EAAS,UAAC,KAKpB,0BAA2BA,EAAS,UAAC,KAKrC,OAAQA,EAAS,UAAC,KAWlB,QAASA,EAAS,UAAC,KAInB,KAAMA,EAAS,UAAC,KAOhB,mBAAoBA,EAAS,UAAC,OAK9B,UAAWA,EAAS,UAAC,MAAM,CACzB,kBAAmBA,EAAS,UAAC,UAAU,CAACA,EAAS,UAAC,KAAMA,EAAS,UAAC,MAAM,CACtE,SAAUA,EAAAA,UAAU,QAAQ,WAC5B,iBAAkBA,EAAS,UAAC,KAC5B,WAAYA,EAAAA,UAAU,MAAM,CAAC,UAAW,cAAe,YAAa,gBAAiB,cAAe,EAAK,CAAC,EAC1G,YAAaA,EAAS,UAAC,KACvB,WAAYA,EAAS,UAAC,MAAM,CAAC,aAAc,eAAgB,EAAK,CAAC,CAClE,CAAA,CAAC,CAAC,EACH,KAAMA,EAAS,UAAC,UAAU,CAACA,EAAS,UAAC,KAAMA,EAAAA,UAAU,MAAM,CAAC,CAChE,CAAG,EAMD,MAAOA,EAAS,UAAC,MAAM,CACrB,KAAMA,EAAS,UAAC,WACpB,CAAG,CACH,GC7IO,SAASyC,EAAS,CACvB,sBAAAa,EACA,KAAA1C,EACA,UAAW2C,EACX,GAAGC,CACL,EAAkB,CAChB,KAAM,CAACC,EAAiBC,CAAkB,EAAIC,WAAS,EAAI,EACrDf,EAAYU,EACdC,EACAK,oBAA6B,CAC3B,uBAAwB,CACtB,KAAMC,OAAK,kBAAkB,CAC/B,CAAA,CACD,EAAEN,CAAc,EACfJ,EAAYW,EAAA,mCAAA,EAAqClB,EAAWY,CAAI,EAEpE,OAAAO,EAAA,kBAAA,IAACC,EAAA,CACC,KAAApD,EACA,UAAAgC,EACC,GAAGO,EACJ,OAAQM,EACR,eAAgB,IAAM,CACpBC,EAAmB9C,IAAS,EAAI,CAClC,EACA,iBAAkB,IAAM,CACtB8C,EAAmB,EAAK,CAC1B,CAAA,CAAA,CAGN","x_google_ignoreList":[0,1,2,3]}