aboutsummaryrefslogtreecommitdiffstats
path: root/vendor/twbs/bootstrap/js/dist/tooltip.js.map
blob: 70feefb8ddff292cce53f307f6a23ca337522a20 (plain) (blame)
1
{"version":3,"file":"tooltip.js","sources":["../src/tooltip.js"],"sourcesContent":["/**\n * --------------------------------------------------------------------------\n * Bootstrap (v5.3.0-alpha1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport * as Popper from '@popperjs/core'\nimport { defineJQueryPlugin, execute, findShadowRoot, getElement, getUID, isRTL, noop } from './util/index.js'\nimport { DefaultAllowlist } from './util/sanitizer.js'\nimport EventHandler from './dom/event-handler.js'\nimport Manipulator from './dom/manipulator.js'\nimport BaseComponent from './base-component.js'\nimport TemplateFactory from './util/template-factory.js'\n\n/**\n * Constants\n */\n\nconst NAME = 'tooltip'\nconst DISALLOWED_ATTRIBUTES = new Set(['sanitize', 'allowList', 'sanitizeFn'])\n\nconst CLASS_NAME_FADE = 'fade'\nconst CLASS_NAME_MODAL = 'modal'\nconst CLASS_NAME_SHOW = 'show'\n\nconst SELECTOR_TOOLTIP_INNER = '.tooltip-inner'\nconst SELECTOR_MODAL = `.${CLASS_NAME_MODAL}`\n\nconst EVENT_MODAL_HIDE = 'hide.bs.modal'\n\nconst TRIGGER_HOVER = 'hover'\nconst TRIGGER_FOCUS = 'focus'\nconst TRIGGER_CLICK = 'click'\nconst TRIGGER_MANUAL = 'manual'\n\nconst EVENT_HIDE = 'hide'\nconst EVENT_HIDDEN = 'hidden'\nconst EVENT_SHOW = 'show'\nconst EVENT_SHOWN = 'shown'\nconst EVENT_INSERTED = 'inserted'\nconst EVENT_CLICK = 'click'\nconst EVENT_FOCUSIN = 'focusin'\nconst EVENT_FOCUSOUT = 'focusout'\nconst EVENT_MOUSEENTER = 'mouseenter'\nconst EVENT_MOUSELEAVE = 'mouseleave'\n\nconst AttachmentMap = {\n  AUTO: 'auto',\n  TOP: 'top',\n  RIGHT: isRTL() ? 'left' : 'right',\n  BOTTOM: 'bottom',\n  LEFT: isRTL() ? 'right' : 'left'\n}\n\nconst Default = {\n  allowList: DefaultAllowlist,\n  animation: true,\n  boundary: 'clippingParents',\n  container: false,\n  customClass: '',\n  delay: 0,\n  fallbackPlacements: ['top', 'right', 'bottom', 'left'],\n  html: false,\n  offset: [0, 0],\n  placement: 'top',\n  popperConfig: null,\n  sanitize: true,\n  sanitizeFn: null,\n  selector: false,\n  template: '<div class=\"tooltip\" role=\"tooltip\">' +\n            '<div class=\"tooltip-arrow\"></div>' +\n            '<div class=\"tooltip-inner\"></div>' +\n            '</div>',\n  title: '',\n  trigger: 'hover focus'\n}\n\nconst DefaultType = {\n  allowList: 'object',\n  animation: 'boolean',\n  boundary: '(string|element)',\n  container: '(string|element|boolean)',\n  customClass: '(string|function)',\n  delay: '(number|object)',\n  fallbackPlacements: 'array',\n  html: 'boolean',\n  offset: '(array|string|function)',\n  placement: '(string|function)',\n  popperConfig: '(null|object|function)',\n  sanitize: 'boolean',\n  sanitizeFn: '(null|function)',\n  selector: '(string|boolean)',\n  template: 'string',\n  title: '(string|element|function)',\n  trigger: 'string'\n}\n\n/**\n * Class definition\n */\n\nclass Tooltip extends BaseComponent {\n  constructor(element, config) {\n    if (typeof Popper === 'undefined') {\n      throw new TypeError('Bootstrap\\'s tooltips require Popper (https://popper.js.org)')\n    }\n\n    super(element, config)\n\n    // Private\n    this._isEnabled = true\n    this._timeout = 0\n    this._isHovered = null\n    this._activeTrigger = {}\n    this._popper = null\n    this._templateFactory = null\n    this._newContent = null\n\n    // Protected\n    this.tip = null\n\n    this._setListeners()\n\n    if (!this._config.selector) {\n      this._fixTitle()\n    }\n  }\n\n  // Getters\n  static get Default() {\n    return Default\n  }\n\n  static get DefaultType() {\n    return DefaultType\n  }\n\n  static get NAME() {\n    return NAME\n  }\n\n  // Public\n  enable() {\n    this._isEnabled = true\n  }\n\n  disable() {\n    this._isEnabled = false\n  }\n\n  toggleEnabled() {\n    this._isEnabled = !this._isEnabled\n  }\n\n  toggle() {\n    if (!this._isEnabled) {\n      return\n    }\n\n    this._activeTrigger.click = !this._activeTrigger.click\n    if (this._isShown()) {\n      this._leave()\n      return\n    }\n\n    this._enter()\n  }\n\n  dispose() {\n    clearTimeout(this._timeout)\n\n    EventHandler.off(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler)\n\n    if (this._element.getAttribute('data-bs-original-title')) {\n      this._element.setAttribute('title', this._element.getAttribute('data-bs-original-title'))\n    }\n\n    this._disposePopper()\n    super.dispose()\n  }\n\n  show() {\n    if (this._element.style.display === 'none') {\n      throw new Error('Please use show on visible elements')\n    }\n\n    if (!(this._isWithContent() && this._isEnabled)) {\n      return\n    }\n\n    const showEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOW))\n    const shadowRoot = findShadowRoot(this._element)\n    const isInTheDom = (shadowRoot || this._element.ownerDocument.documentElement).contains(this._element)\n\n    if (showEvent.defaultPrevented || !isInTheDom) {\n      return\n    }\n\n    // todo v6 remove this OR make it optional\n    this._disposePopper()\n\n    const tip = this._getTipElement()\n\n    this._element.setAttribute('aria-describedby', tip.getAttribute('id'))\n\n    const { container } = this._config\n\n    if (!this._element.ownerDocument.documentElement.contains(this.tip)) {\n      container.append(tip)\n      EventHandler.trigger(this._element, this.constructor.eventName(EVENT_INSERTED))\n    }\n\n    this._popper = this._createPopper(tip)\n\n    tip.classList.add(CLASS_NAME_SHOW)\n\n    // If this is a touch-enabled device we add extra\n    // empty mouseover listeners to the body's immediate children;\n    // only needed because of broken event delegation on iOS\n    // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n    if ('ontouchstart' in document.documentElement) {\n      for (const element of [].concat(...document.body.children)) {\n        EventHandler.on(element, 'mouseover', noop)\n      }\n    }\n\n    const complete = () => {\n      EventHandler.trigger(this._element, this.constructor.eventName(EVENT_SHOWN))\n\n      if (this._isHovered === false) {\n        this._leave()\n      }\n\n      this._isHovered = false\n    }\n\n    this._queueCallback(complete, this.tip, this._isAnimated())\n  }\n\n  hide() {\n    if (!this._isShown()) {\n      return\n    }\n\n    const hideEvent = EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDE))\n    if (hideEvent.defaultPrevented) {\n      return\n    }\n\n    const tip = this._getTipElement()\n    tip.classList.remove(CLASS_NAME_SHOW)\n\n    // If this is a touch-enabled device we remove the extra\n    // empty mouseover listeners we added for iOS support\n    if ('ontouchstart' in document.documentElement) {\n      for (const element of [].concat(...document.body.children)) {\n        EventHandler.off(element, 'mouseover', noop)\n      }\n    }\n\n    this._activeTrigger[TRIGGER_CLICK] = false\n    this._activeTrigger[TRIGGER_FOCUS] = false\n    this._activeTrigger[TRIGGER_HOVER] = false\n    this._isHovered = null // it is a trick to support manual triggering\n\n    const complete = () => {\n      if (this._isWithActiveTrigger()) {\n        return\n      }\n\n      if (!this._isHovered) {\n        this._disposePopper()\n      }\n\n      this._element.removeAttribute('aria-describedby')\n      EventHandler.trigger(this._element, this.constructor.eventName(EVENT_HIDDEN))\n    }\n\n    this._queueCallback(complete, this.tip, this._isAnimated())\n  }\n\n  update() {\n    if (this._popper) {\n      this._popper.update()\n    }\n  }\n\n  // Protected\n  _isWithContent() {\n    return Boolean(this._getTitle())\n  }\n\n  _getTipElement() {\n    if (!this.tip) {\n      this.tip = this._createTipElement(this._newContent || this._getContentForTemplate())\n    }\n\n    return this.tip\n  }\n\n  _createTipElement(content) {\n    const tip = this._getTemplateFactory(content).toHtml()\n\n    // todo: remove this check on v6\n    if (!tip) {\n      return null\n    }\n\n    tip.classList.remove(CLASS_NAME_FADE, CLASS_NAME_SHOW)\n    // todo: on v6 the following can be achieved with CSS only\n    tip.classList.add(`bs-${this.constructor.NAME}-auto`)\n\n    const tipId = getUID(this.constructor.NAME).toString()\n\n    tip.setAttribute('id', tipId)\n\n    if (this._isAnimated()) {\n      tip.classList.add(CLASS_NAME_FADE)\n    }\n\n    return tip\n  }\n\n  setContent(content) {\n    this._newContent = content\n    if (this._isShown()) {\n      this._disposePopper()\n      this.show()\n    }\n  }\n\n  _getTemplateFactory(content) {\n    if (this._templateFactory) {\n      this._templateFactory.changeContent(content)\n    } else {\n      this._templateFactory = new TemplateFactory({\n        ...this._config,\n        // the `content` var has to be after `this._config`\n        // to override config.content in case of popover\n        content,\n        extraClass: this._resolvePossibleFunction(this._config.customClass)\n      })\n    }\n\n    return this._templateFactory\n  }\n\n  _getContentForTemplate() {\n    return {\n      [SELECTOR_TOOLTIP_INNER]: this._getTitle()\n    }\n  }\n\n  _getTitle() {\n    return this._resolvePossibleFunction(this._config.title) || this._element.getAttribute('data-bs-original-title')\n  }\n\n  // Private\n  _initializeOnDelegatedTarget(event) {\n    return this.constructor.getOrCreateInstance(event.delegateTarget, this._getDelegateConfig())\n  }\n\n  _isAnimated() {\n    return this._config.animation || (this.tip && this.tip.classList.contains(CLASS_NAME_FADE))\n  }\n\n  _isShown() {\n    return this.tip && this.tip.classList.contains(CLASS_NAME_SHOW)\n  }\n\n  _createPopper(tip) {\n    const placement = execute(this._config.placement, [this, tip, this._element])\n    const attachment = AttachmentMap[placement.toUpperCase()]\n    return Popper.createPopper(this._element, tip, this._getPopperConfig(attachment))\n  }\n\n  _getOffset() {\n    const { offset } = this._config\n\n    if (typeof offset === 'string') {\n      return offset.split(',').map(value => Number.parseInt(value, 10))\n    }\n\n    if (typeof offset === 'function') {\n      return popperData => offset(popperData, this._element)\n    }\n\n    return offset\n  }\n\n  _resolvePossibleFunction(arg) {\n    return execute(arg, [this._element])\n  }\n\n  _getPopperConfig(attachment) {\n    const defaultBsPopperConfig = {\n      placement: attachment,\n      modifiers: [\n        {\n          name: 'flip',\n          options: {\n            fallbackPlacements: this._config.fallbackPlacements\n          }\n        },\n        {\n          name: 'offset',\n          options: {\n            offset: this._getOffset()\n          }\n        },\n        {\n          name: 'preventOverflow',\n          options: {\n            boundary: this._config.boundary\n          }\n        },\n        {\n          name: 'arrow',\n          options: {\n            element: `.${this.constructor.NAME}-arrow`\n          }\n        },\n        {\n          name: 'preSetPlacement',\n          enabled: true,\n          phase: 'beforeMain',\n          fn: data => {\n            // Pre-set Popper's placement attribute in order to read the arrow sizes properly.\n            // Otherwise, Popper mixes up the width and height dimensions since the initial arrow style is for top placement\n            this._getTipElement().setAttribute('data-popper-placement', data.state.placement)\n          }\n        }\n      ]\n    }\n\n    return {\n      ...defaultBsPopperConfig,\n      ...execute(this._config.popperConfig, [defaultBsPopperConfig])\n    }\n  }\n\n  _setListeners() {\n    const triggers = this._config.trigger.split(' ')\n\n    for (const trigger of triggers) {\n      if (trigger === 'click') {\n        EventHandler.on(this._element, this.constructor.eventName(EVENT_CLICK), this._config.selector, event => {\n          const context = this._initializeOnDelegatedTarget(event)\n          context.toggle()\n        })\n      } else if (trigger !== TRIGGER_MANUAL) {\n        const eventIn = trigger === TRIGGER_HOVER ?\n          this.constructor.eventName(EVENT_MOUSEENTER) :\n          this.constructor.eventName(EVENT_FOCUSIN)\n        const eventOut = trigger === TRIGGER_HOVER ?\n          this.constructor.eventName(EVENT_MOUSELEAVE) :\n          this.constructor.eventName(EVENT_FOCUSOUT)\n\n        EventHandler.on(this._element, eventIn, this._config.selector, event => {\n          const context = this._initializeOnDelegatedTarget(event)\n          context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true\n          context._enter()\n        })\n        EventHandler.on(this._element, eventOut, this._config.selector, event => {\n          const context = this._initializeOnDelegatedTarget(event)\n          context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] =\n            context._element.contains(event.relatedTarget)\n\n          context._leave()\n        })\n      }\n    }\n\n    this._hideModalHandler = () => {\n      if (this._element) {\n        this.hide()\n      }\n    }\n\n    EventHandler.on(this._element.closest(SELECTOR_MODAL), EVENT_MODAL_HIDE, this._hideModalHandler)\n  }\n\n  _fixTitle() {\n    const title = this._element.getAttribute('title')\n\n    if (!title) {\n      return\n    }\n\n    if (!this._element.getAttribute('aria-label') && !this._element.textContent.trim()) {\n      this._element.setAttribute('aria-label', title)\n    }\n\n    this._element.setAttribute('data-bs-original-title', title) // DO NOT USE IT. Is only for backwards compatibility\n    this._element.removeAttribute('title')\n  }\n\n  _enter() {\n    if (this._isShown() || this._isHovered) {\n      this._isHovered = true\n      return\n    }\n\n    this._isHovered = true\n\n    this._setTimeout(() => {\n      if (this._isHovered) {\n        this.show()\n      }\n    }, this._config.delay.show)\n  }\n\n  _leave() {\n    if (this._isWithActiveTrigger()) {\n      return\n    }\n\n    this._isHovered = false\n\n    this._setTimeout(() => {\n      if (!this._isHovered) {\n        this.hide()\n      }\n    }, this._config.delay.hide)\n  }\n\n  _setTimeout(handler, timeout) {\n    clearTimeout(this._timeout)\n    this._timeout = setTimeout(handler, timeout)\n  }\n\n  _isWithActiveTrigger() {\n    return Object.values(this._activeTrigger).includes(true)\n  }\n\n  _getConfig(config) {\n    const dataAttributes = Manipulator.getDataAttributes(this._element)\n\n    for (const dataAttribute of Object.keys(dataAttributes)) {\n      if (DISALLOWED_ATTRIBUTES.has(dataAttribute)) {\n        delete dataAttributes[dataAttribute]\n      }\n    }\n\n    config = {\n      ...dataAttributes,\n      ...(typeof config === 'object' && config ? config : {})\n    }\n    config = this._mergeConfigObj(config)\n    config = this._configAfterMerge(config)\n    this._typeCheckConfig(config)\n    return config\n  }\n\n  _configAfterMerge(config) {\n    config.container = config.container === false ? document.body : getElement(config.container)\n\n    if (typeof config.delay === 'number') {\n      config.delay = {\n        show: config.delay,\n        hide: config.delay\n      }\n    }\n\n    if (typeof config.title === 'number') {\n      config.title = config.title.toString()\n    }\n\n    if (typeof config.content === 'number') {\n      config.content = config.content.toString()\n    }\n\n    return config\n  }\n\n  _getDelegateConfig() {\n    const config = {}\n\n    for (const [key, value] of Object.entries(this._config)) {\n      if (this.constructor.Default[key] !== value) {\n        config[key] = value\n      }\n    }\n\n    config.selector = false\n    config.trigger = 'manual'\n\n    // In the future can be replaced with:\n    // const keysWithDifferentValues = Object.entries(this._config).filter(entry => this.constructor.Default[entry[0]] !== this._config[entry[0]])\n    // `Object.fromEntries(keysWithDifferentValues)`\n    return config\n  }\n\n  _disposePopper() {\n    if (this._popper) {\n      this._popper.destroy()\n      this._popper = null\n    }\n\n    if (this.tip) {\n      this.tip.remove()\n      this.tip = null\n    }\n  }\n\n  // Static\n  static jQueryInterface(config) {\n    return this.each(function () {\n      const data = Tooltip.getOrCreateInstance(this, config)\n\n      if (typeof config !== 'string') {\n        return\n      }\n\n      if (typeof data[config] === 'undefined') {\n        throw new TypeError(`No method named \"${config}\"`)\n      }\n\n      data[config]()\n    })\n  }\n}\n\n/**\n * jQuery\n */\n\ndefineJQueryPlugin(Tooltip)\n\nexport default Tooltip\n"],"names":["NAME","DISALLOWED_ATTRIBUTES","Set","CLASS_NAME_FADE","CLASS_NAME_MODAL","CLASS_NAME_SHOW","SELECTOR_TOOLTIP_INNER","SELECTOR_MODAL","EVENT_MODAL_HIDE","TRIGGER_HOVER","TRIGGER_FOCUS","TRIGGER_CLICK","TRIGGER_MANUAL","EVENT_HIDE","EVENT_HIDDEN","EVENT_SHOW","EVENT_SHOWN","EVENT_INSERTED","EVENT_CLICK","EVENT_FOCUSIN","EVENT_FOCUSOUT","EVENT_MOUSEENTER","EVENT_MOUSELEAVE","AttachmentMap","AUTO","TOP","RIGHT","isRTL","BOTTOM","LEFT","Default","allowList","DefaultAllowlist","animation","boundary","container","customClass","delay","fallbackPlacements","html","offset","placement","popperConfig","sanitize","sanitizeFn","selector","template","title","trigger","DefaultType","Tooltip","BaseComponent","constructor","element","config","Popper","TypeError","_isEnabled","_timeout","_isHovered","_activeTrigger","_popper","_templateFactory","_newContent","tip","_setListeners","_config","_fixTitle","enable","disable","toggleEnabled","toggle","click","_isShown","_leave","_enter","dispose","clearTimeout","EventHandler","off","_element","closest","_hideModalHandler","getAttribute","setAttribute","_disposePopper","show","style","display","Error","_isWithContent","showEvent","eventName","shadowRoot","findShadowRoot","isInTheDom","ownerDocument","documentElement","contains","defaultPrevented","_getTipElement","append","_createPopper","classList","add","document","concat","body","children","on","noop","complete","_queueCallback","_isAnimated","hide","hideEvent","remove","_isWithActiveTrigger","removeAttribute","update","Boolean","_getTitle","_createTipElement","_getContentForTemplate","content","_getTemplateFactory","toHtml","tipId","getUID","toString","setContent","changeContent","TemplateFactory","extraClass","_resolvePossibleFunction","_initializeOnDelegatedTarget","event","getOrCreateInstance","delegateTarget","_getDelegateConfig","execute","attachment","toUpperCase","createPopper","_getPopperConfig","_getOffset","split","map","value","Number","parseInt","popperData","arg","defaultBsPopperConfig","modifiers","name","options","enabled","phase","fn","data","state","triggers","context","eventIn","eventOut","type","relatedTarget","textContent","trim","_setTimeout","handler","timeout","setTimeout","Object","values","includes","_getConfig","dataAttributes","Manipulator","getDataAttributes","dataAttribute","keys","has","_mergeConfigObj","_configAfterMerge","_typeCheckConfig","getElement","key","entries","destroy","jQueryInterface","each","defineJQueryPlugin"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAA;EACA;EACA;EACA;EACA;EACA;;EAUA;EACA;EACA;;EAEA,MAAMA,IAAI,GAAG,SAAS,CAAA;EACtB,MAAMC,qBAAqB,GAAG,IAAIC,GAAG,CAAC,CAAC,UAAU,EAAE,WAAW,EAAE,YAAY,CAAC,CAAC,CAAA;EAE9E,MAAMC,eAAe,GAAG,MAAM,CAAA;EAC9B,MAAMC,gBAAgB,GAAG,OAAO,CAAA;EAChC,MAAMC,eAAe,GAAG,MAAM,CAAA;EAE9B,MAAMC,sBAAsB,GAAG,gBAAgB,CAAA;EAC/C,MAAMC,cAAc,GAAI,CAAGH,CAAAA,EAAAA,gBAAiB,CAAC,CAAA,CAAA;EAE7C,MAAMI,gBAAgB,GAAG,eAAe,CAAA;EAExC,MAAMC,aAAa,GAAG,OAAO,CAAA;EAC7B,MAAMC,aAAa,GAAG,OAAO,CAAA;EAC7B,MAAMC,aAAa,GAAG,OAAO,CAAA;EAC7B,MAAMC,cAAc,GAAG,QAAQ,CAAA;EAE/B,MAAMC,UAAU,GAAG,MAAM,CAAA;EACzB,MAAMC,YAAY,GAAG,QAAQ,CAAA;EAC7B,MAAMC,UAAU,GAAG,MAAM,CAAA;EACzB,MAAMC,WAAW,GAAG,OAAO,CAAA;EAC3B,MAAMC,cAAc,GAAG,UAAU,CAAA;EACjC,MAAMC,WAAW,GAAG,OAAO,CAAA;EAC3B,MAAMC,aAAa,GAAG,SAAS,CAAA;EAC/B,MAAMC,cAAc,GAAG,UAAU,CAAA;EACjC,MAAMC,gBAAgB,GAAG,YAAY,CAAA;EACrC,MAAMC,gBAAgB,GAAG,YAAY,CAAA;EAErC,MAAMC,aAAa,GAAG;EACpBC,EAAAA,IAAI,EAAE,MAAM;EACZC,EAAAA,GAAG,EAAE,KAAK;EACVC,EAAAA,KAAK,EAAEC,cAAK,EAAE,GAAG,MAAM,GAAG,OAAO;EACjCC,EAAAA,MAAM,EAAE,QAAQ;EAChBC,EAAAA,IAAI,EAAEF,cAAK,EAAE,GAAG,OAAO,GAAG,MAAA;EAC5B,CAAC,CAAA;EAED,MAAMG,OAAO,GAAG;EACdC,EAAAA,SAAS,EAAEC,6BAAgB;EAC3BC,EAAAA,SAAS,EAAE,IAAI;EACfC,EAAAA,QAAQ,EAAE,iBAAiB;EAC3BC,EAAAA,SAAS,EAAE,KAAK;EAChBC,EAAAA,WAAW,EAAE,EAAE;EACfC,EAAAA,KAAK,EAAE,CAAC;IACRC,kBAAkB,EAAE,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC;EACtDC,EAAAA,IAAI,EAAE,KAAK;EACXC,EAAAA,MAAM,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;EACdC,EAAAA,SAAS,EAAE,KAAK;EAChBC,EAAAA,YAAY,EAAE,IAAI;EAClBC,EAAAA,QAAQ,EAAE,IAAI;EACdC,EAAAA,UAAU,EAAE,IAAI;EAChBC,EAAAA,QAAQ,EAAE,KAAK;EACfC,EAAAA,QAAQ,EAAE,sCAAsC,GACtC,mCAAmC,GACnC,mCAAmC,GACnC,QAAQ;EAClBC,EAAAA,KAAK,EAAE,EAAE;EACTC,EAAAA,OAAO,EAAE,aAAA;EACX,CAAC,CAAA;EAED,MAAMC,WAAW,GAAG;EAClBlB,EAAAA,SAAS,EAAE,QAAQ;EACnBE,EAAAA,SAAS,EAAE,SAAS;EACpBC,EAAAA,QAAQ,EAAE,kBAAkB;EAC5BC,EAAAA,SAAS,EAAE,0BAA0B;EACrCC,EAAAA,WAAW,EAAE,mBAAmB;EAChCC,EAAAA,KAAK,EAAE,iBAAiB;EACxBC,EAAAA,kBAAkB,EAAE,OAAO;EAC3BC,EAAAA,IAAI,EAAE,SAAS;EACfC,EAAAA,MAAM,EAAE,yBAAyB;EACjCC,EAAAA,SAAS,EAAE,mBAAmB;EAC9BC,EAAAA,YAAY,EAAE,wBAAwB;EACtCC,EAAAA,QAAQ,EAAE,SAAS;EACnBC,EAAAA,UAAU,EAAE,iBAAiB;EAC7BC,EAAAA,QAAQ,EAAE,kBAAkB;EAC5BC,EAAAA,QAAQ,EAAE,QAAQ;EAClBC,EAAAA,KAAK,EAAE,2BAA2B;EAClCC,EAAAA,OAAO,EAAE,QAAA;EACX,CAAC,CAAA;;EAED;EACA;EACA;;EAEA,MAAME,OAAO,SAASC,aAAa,CAAC;EAClCC,EAAAA,WAAW,CAACC,OAAO,EAAEC,MAAM,EAAE;EAC3B,IAAA,IAAI,OAAOC,iBAAM,KAAK,WAAW,EAAE;EACjC,MAAA,MAAM,IAAIC,SAAS,CAAC,8DAA8D,CAAC,CAAA;EACrF,KAAA;EAEA,IAAA,KAAK,CAACH,OAAO,EAAEC,MAAM,CAAC,CAAA;;EAEtB;MACA,IAAI,CAACG,UAAU,GAAG,IAAI,CAAA;MACtB,IAAI,CAACC,QAAQ,GAAG,CAAC,CAAA;MACjB,IAAI,CAACC,UAAU,GAAG,IAAI,CAAA;EACtB,IAAA,IAAI,CAACC,cAAc,GAAG,EAAE,CAAA;MACxB,IAAI,CAACC,OAAO,GAAG,IAAI,CAAA;MACnB,IAAI,CAACC,gBAAgB,GAAG,IAAI,CAAA;MAC5B,IAAI,CAACC,WAAW,GAAG,IAAI,CAAA;;EAEvB;MACA,IAAI,CAACC,GAAG,GAAG,IAAI,CAAA;MAEf,IAAI,CAACC,aAAa,EAAE,CAAA;EAEpB,IAAA,IAAI,CAAC,IAAI,CAACC,OAAO,CAACrB,QAAQ,EAAE;QAC1B,IAAI,CAACsB,SAAS,EAAE,CAAA;EAClB,KAAA;EACF,GAAA;;EAEA;EACA,EAAA,WAAWrC,OAAO,GAAG;EACnB,IAAA,OAAOA,OAAO,CAAA;EAChB,GAAA;EAEA,EAAA,WAAWmB,WAAW,GAAG;EACvB,IAAA,OAAOA,WAAW,CAAA;EACpB,GAAA;EAEA,EAAA,WAAWjD,IAAI,GAAG;EAChB,IAAA,OAAOA,IAAI,CAAA;EACb,GAAA;;EAEA;EACAoE,EAAAA,MAAM,GAAG;MACP,IAAI,CAACX,UAAU,GAAG,IAAI,CAAA;EACxB,GAAA;EAEAY,EAAAA,OAAO,GAAG;MACR,IAAI,CAACZ,UAAU,GAAG,KAAK,CAAA;EACzB,GAAA;EAEAa,EAAAA,aAAa,GAAG;EACd,IAAA,IAAI,CAACb,UAAU,GAAG,CAAC,IAAI,CAACA,UAAU,CAAA;EACpC,GAAA;EAEAc,EAAAA,MAAM,GAAG;EACP,IAAA,IAAI,CAAC,IAAI,CAACd,UAAU,EAAE;EACpB,MAAA,OAAA;EACF,KAAA;MAEA,IAAI,CAACG,cAAc,CAACY,KAAK,GAAG,CAAC,IAAI,CAACZ,cAAc,CAACY,KAAK,CAAA;EACtD,IAAA,IAAI,IAAI,CAACC,QAAQ,EAAE,EAAE;QACnB,IAAI,CAACC,MAAM,EAAE,CAAA;EACb,MAAA,OAAA;EACF,KAAA;MAEA,IAAI,CAACC,MAAM,EAAE,CAAA;EACf,GAAA;EAEAC,EAAAA,OAAO,GAAG;EACRC,IAAAA,YAAY,CAAC,IAAI,CAACnB,QAAQ,CAAC,CAAA;EAE3BoB,IAAAA,YAAY,CAACC,GAAG,CAAC,IAAI,CAACC,QAAQ,CAACC,OAAO,CAAC1E,cAAc,CAAC,EAAEC,gBAAgB,EAAE,IAAI,CAAC0E,iBAAiB,CAAC,CAAA;MAEjG,IAAI,IAAI,CAACF,QAAQ,CAACG,YAAY,CAAC,wBAAwB,CAAC,EAAE;EACxD,MAAA,IAAI,CAACH,QAAQ,CAACI,YAAY,CAAC,OAAO,EAAE,IAAI,CAACJ,QAAQ,CAACG,YAAY,CAAC,wBAAwB,CAAC,CAAC,CAAA;EAC3F,KAAA;MAEA,IAAI,CAACE,cAAc,EAAE,CAAA;MACrB,KAAK,CAACT,OAAO,EAAE,CAAA;EACjB,GAAA;EAEAU,EAAAA,IAAI,GAAG;MACL,IAAI,IAAI,CAACN,QAAQ,CAACO,KAAK,CAACC,OAAO,KAAK,MAAM,EAAE;EAC1C,MAAA,MAAM,IAAIC,KAAK,CAAC,qCAAqC,CAAC,CAAA;EACxD,KAAA;MAEA,IAAI,EAAE,IAAI,CAACC,cAAc,EAAE,IAAI,IAAI,CAACjC,UAAU,CAAC,EAAE;EAC/C,MAAA,OAAA;EACF,KAAA;EAEA,IAAA,MAAMkC,SAAS,GAAGb,YAAY,CAAC9B,OAAO,CAAC,IAAI,CAACgC,QAAQ,EAAE,IAAI,CAAC5B,WAAW,CAACwC,SAAS,CAAC7E,UAAU,CAAC,CAAC,CAAA;EAC7F,IAAA,MAAM8E,UAAU,GAAGC,uBAAc,CAAC,IAAI,CAACd,QAAQ,CAAC,CAAA;EAChD,IAAA,MAAMe,UAAU,GAAG,CAACF,UAAU,IAAI,IAAI,CAACb,QAAQ,CAACgB,aAAa,CAACC,eAAe,EAAEC,QAAQ,CAAC,IAAI,CAAClB,QAAQ,CAAC,CAAA;EAEtG,IAAA,IAAIW,SAAS,CAACQ,gBAAgB,IAAI,CAACJ,UAAU,EAAE;EAC7C,MAAA,OAAA;EACF,KAAA;;EAEA;MACA,IAAI,CAACV,cAAc,EAAE,CAAA;EAErB,IAAA,MAAMrB,GAAG,GAAG,IAAI,CAACoC,cAAc,EAAE,CAAA;EAEjC,IAAA,IAAI,CAACpB,QAAQ,CAACI,YAAY,CAAC,kBAAkB,EAAEpB,GAAG,CAACmB,YAAY,CAAC,IAAI,CAAC,CAAC,CAAA;MAEtE,MAAM;EAAEhD,MAAAA,SAAAA;OAAW,GAAG,IAAI,CAAC+B,OAAO,CAAA;EAElC,IAAA,IAAI,CAAC,IAAI,CAACc,QAAQ,CAACgB,aAAa,CAACC,eAAe,CAACC,QAAQ,CAAC,IAAI,CAAClC,GAAG,CAAC,EAAE;EACnE7B,MAAAA,SAAS,CAACkE,MAAM,CAACrC,GAAG,CAAC,CAAA;EACrBc,MAAAA,YAAY,CAAC9B,OAAO,CAAC,IAAI,CAACgC,QAAQ,EAAE,IAAI,CAAC5B,WAAW,CAACwC,SAAS,CAAC3E,cAAc,CAAC,CAAC,CAAA;EACjF,KAAA;MAEA,IAAI,CAAC4C,OAAO,GAAG,IAAI,CAACyC,aAAa,CAACtC,GAAG,CAAC,CAAA;EAEtCA,IAAAA,GAAG,CAACuC,SAAS,CAACC,GAAG,CAACnG,eAAe,CAAC,CAAA;;EAElC;EACA;EACA;EACA;EACA,IAAA,IAAI,cAAc,IAAIoG,QAAQ,CAACR,eAAe,EAAE;EAC9C,MAAA,KAAK,MAAM5C,OAAO,IAAI,EAAE,CAACqD,MAAM,CAAC,GAAGD,QAAQ,CAACE,IAAI,CAACC,QAAQ,CAAC,EAAE;UAC1D9B,YAAY,CAAC+B,EAAE,CAACxD,OAAO,EAAE,WAAW,EAAEyD,aAAI,CAAC,CAAA;EAC7C,OAAA;EACF,KAAA;MAEA,MAAMC,QAAQ,GAAG,MAAM;EACrBjC,MAAAA,YAAY,CAAC9B,OAAO,CAAC,IAAI,CAACgC,QAAQ,EAAE,IAAI,CAAC5B,WAAW,CAACwC,SAAS,CAAC5E,WAAW,CAAC,CAAC,CAAA;EAE5E,MAAA,IAAI,IAAI,CAAC2C,UAAU,KAAK,KAAK,EAAE;UAC7B,IAAI,CAACe,MAAM,EAAE,CAAA;EACf,OAAA;QAEA,IAAI,CAACf,UAAU,GAAG,KAAK,CAAA;OACxB,CAAA;EAED,IAAA,IAAI,CAACqD,cAAc,CAACD,QAAQ,EAAE,IAAI,CAAC/C,GAAG,EAAE,IAAI,CAACiD,WAAW,EAAE,CAAC,CAAA;EAC7D,GAAA;EAEAC,EAAAA,IAAI,GAAG;EACL,IAAA,IAAI,CAAC,IAAI,CAACzC,QAAQ,EAAE,EAAE;EACpB,MAAA,OAAA;EACF,KAAA;EAEA,IAAA,MAAM0C,SAAS,GAAGrC,YAAY,CAAC9B,OAAO,CAAC,IAAI,CAACgC,QAAQ,EAAE,IAAI,CAAC5B,WAAW,CAACwC,SAAS,CAAC/E,UAAU,CAAC,CAAC,CAAA;MAC7F,IAAIsG,SAAS,CAAChB,gBAAgB,EAAE;EAC9B,MAAA,OAAA;EACF,KAAA;EAEA,IAAA,MAAMnC,GAAG,GAAG,IAAI,CAACoC,cAAc,EAAE,CAAA;EACjCpC,IAAAA,GAAG,CAACuC,SAAS,CAACa,MAAM,CAAC/G,eAAe,CAAC,CAAA;;EAErC;EACA;EACA,IAAA,IAAI,cAAc,IAAIoG,QAAQ,CAACR,eAAe,EAAE;EAC9C,MAAA,KAAK,MAAM5C,OAAO,IAAI,EAAE,CAACqD,MAAM,CAAC,GAAGD,QAAQ,CAACE,IAAI,CAACC,QAAQ,CAAC,EAAE;UAC1D9B,YAAY,CAACC,GAAG,CAAC1B,OAAO,EAAE,WAAW,EAAEyD,aAAI,CAAC,CAAA;EAC9C,OAAA;EACF,KAAA;EAEA,IAAA,IAAI,CAAClD,cAAc,CAACjD,aAAa,CAAC,GAAG,KAAK,CAAA;EAC1C,IAAA,IAAI,CAACiD,cAAc,CAAClD,aAAa,CAAC,GAAG,KAAK,CAAA;EAC1C,IAAA,IAAI,CAACkD,cAAc,CAACnD,aAAa,CAAC,GAAG,KAAK,CAAA;EAC1C,IAAA,IAAI,CAACkD,UAAU,GAAG,IAAI,CAAC;;MAEvB,MAAMoD,QAAQ,GAAG,MAAM;EACrB,MAAA,IAAI,IAAI,CAACM,oBAAoB,EAAE,EAAE;EAC/B,QAAA,OAAA;EACF,OAAA;EAEA,MAAA,IAAI,CAAC,IAAI,CAAC1D,UAAU,EAAE;UACpB,IAAI,CAAC0B,cAAc,EAAE,CAAA;EACvB,OAAA;EAEA,MAAA,IAAI,CAACL,QAAQ,CAACsC,eAAe,CAAC,kBAAkB,CAAC,CAAA;EACjDxC,MAAAA,YAAY,CAAC9B,OAAO,CAAC,IAAI,CAACgC,QAAQ,EAAE,IAAI,CAAC5B,WAAW,CAACwC,SAAS,CAAC9E,YAAY,CAAC,CAAC,CAAA;OAC9E,CAAA;EAED,IAAA,IAAI,CAACkG,cAAc,CAACD,QAAQ,EAAE,IAAI,CAAC/C,GAAG,EAAE,IAAI,CAACiD,WAAW,EAAE,CAAC,CAAA;EAC7D,GAAA;EAEAM,EAAAA,MAAM,GAAG;MACP,IAAI,IAAI,CAAC1D,OAAO,EAAE;EAChB,MAAA,IAAI,CAACA,OAAO,CAAC0D,MAAM,EAAE,CAAA;EACvB,KAAA;EACF,GAAA;;EAEA;EACA7B,EAAAA,cAAc,GAAG;EACf,IAAA,OAAO8B,OAAO,CAAC,IAAI,CAACC,SAAS,EAAE,CAAC,CAAA;EAClC,GAAA;EAEArB,EAAAA,cAAc,GAAG;EACf,IAAA,IAAI,CAAC,IAAI,CAACpC,GAAG,EAAE;EACb,MAAA,IAAI,CAACA,GAAG,GAAG,IAAI,CAAC0D,iBAAiB,CAAC,IAAI,CAAC3D,WAAW,IAAI,IAAI,CAAC4D,sBAAsB,EAAE,CAAC,CAAA;EACtF,KAAA;MAEA,OAAO,IAAI,CAAC3D,GAAG,CAAA;EACjB,GAAA;IAEA0D,iBAAiB,CAACE,OAAO,EAAE;MACzB,MAAM5D,GAAG,GAAG,IAAI,CAAC6D,mBAAmB,CAACD,OAAO,CAAC,CAACE,MAAM,EAAE,CAAA;;EAEtD;MACA,IAAI,CAAC9D,GAAG,EAAE;EACR,MAAA,OAAO,IAAI,CAAA;EACb,KAAA;MAEAA,GAAG,CAACuC,SAAS,CAACa,MAAM,CAACjH,eAAe,EAAEE,eAAe,CAAC,CAAA;EACtD;EACA2D,IAAAA,GAAG,CAACuC,SAAS,CAACC,GAAG,CAAE,CAAA,GAAA,EAAK,IAAI,CAACpD,WAAW,CAACpD,IAAK,CAAA,KAAA,CAAM,CAAC,CAAA;EAErD,IAAA,MAAM+H,KAAK,GAAGC,eAAM,CAAC,IAAI,CAAC5E,WAAW,CAACpD,IAAI,CAAC,CAACiI,QAAQ,EAAE,CAAA;EAEtDjE,IAAAA,GAAG,CAACoB,YAAY,CAAC,IAAI,EAAE2C,KAAK,CAAC,CAAA;EAE7B,IAAA,IAAI,IAAI,CAACd,WAAW,EAAE,EAAE;EACtBjD,MAAAA,GAAG,CAACuC,SAAS,CAACC,GAAG,CAACrG,eAAe,CAAC,CAAA;EACpC,KAAA;EAEA,IAAA,OAAO6D,GAAG,CAAA;EACZ,GAAA;IAEAkE,UAAU,CAACN,OAAO,EAAE;MAClB,IAAI,CAAC7D,WAAW,GAAG6D,OAAO,CAAA;EAC1B,IAAA,IAAI,IAAI,CAACnD,QAAQ,EAAE,EAAE;QACnB,IAAI,CAACY,cAAc,EAAE,CAAA;QACrB,IAAI,CAACC,IAAI,EAAE,CAAA;EACb,KAAA;EACF,GAAA;IAEAuC,mBAAmB,CAACD,OAAO,EAAE;MAC3B,IAAI,IAAI,CAAC9D,gBAAgB,EAAE;EACzB,MAAA,IAAI,CAACA,gBAAgB,CAACqE,aAAa,CAACP,OAAO,CAAC,CAAA;EAC9C,KAAC,MAAM;EACL,MAAA,IAAI,CAAC9D,gBAAgB,GAAG,IAAIsE,eAAe,CAAC;UAC1C,GAAG,IAAI,CAAClE,OAAO;EACf;EACA;UACA0D,OAAO;UACPS,UAAU,EAAE,IAAI,CAACC,wBAAwB,CAAC,IAAI,CAACpE,OAAO,CAAC9B,WAAW,CAAA;EACpE,OAAC,CAAC,CAAA;EACJ,KAAA;MAEA,OAAO,IAAI,CAAC0B,gBAAgB,CAAA;EAC9B,GAAA;EAEA6D,EAAAA,sBAAsB,GAAG;MACvB,OAAO;EACL,MAAA,CAACrH,sBAAsB,GAAG,IAAI,CAACmH,SAAS,EAAA;OACzC,CAAA;EACH,GAAA;EAEAA,EAAAA,SAAS,GAAG;EACV,IAAA,OAAO,IAAI,CAACa,wBAAwB,CAAC,IAAI,CAACpE,OAAO,CAACnB,KAAK,CAAC,IAAI,IAAI,CAACiC,QAAQ,CAACG,YAAY,CAAC,wBAAwB,CAAC,CAAA;EAClH,GAAA;;EAEA;IACAoD,4BAA4B,CAACC,KAAK,EAAE;EAClC,IAAA,OAAO,IAAI,CAACpF,WAAW,CAACqF,mBAAmB,CAACD,KAAK,CAACE,cAAc,EAAE,IAAI,CAACC,kBAAkB,EAAE,CAAC,CAAA;EAC9F,GAAA;EAEA1B,EAAAA,WAAW,GAAG;EACZ,IAAA,OAAO,IAAI,CAAC/C,OAAO,CAACjC,SAAS,IAAK,IAAI,CAAC+B,GAAG,IAAI,IAAI,CAACA,GAAG,CAACuC,SAAS,CAACL,QAAQ,CAAC/F,eAAe,CAAE,CAAA;EAC7F,GAAA;EAEAsE,EAAAA,QAAQ,GAAG;EACT,IAAA,OAAO,IAAI,CAACT,GAAG,IAAI,IAAI,CAACA,GAAG,CAACuC,SAAS,CAACL,QAAQ,CAAC7F,eAAe,CAAC,CAAA;EACjE,GAAA;IAEAiG,aAAa,CAACtC,GAAG,EAAE;EACjB,IAAA,MAAMvB,SAAS,GAAGmG,gBAAO,CAAC,IAAI,CAAC1E,OAAO,CAACzB,SAAS,EAAE,CAAC,IAAI,EAAEuB,GAAG,EAAE,IAAI,CAACgB,QAAQ,CAAC,CAAC,CAAA;MAC7E,MAAM6D,UAAU,GAAGtH,aAAa,CAACkB,SAAS,CAACqG,WAAW,EAAE,CAAC,CAAA;EACzD,IAAA,OAAOvF,iBAAM,CAACwF,YAAY,CAAC,IAAI,CAAC/D,QAAQ,EAAEhB,GAAG,EAAE,IAAI,CAACgF,gBAAgB,CAACH,UAAU,CAAC,CAAC,CAAA;EACnF,GAAA;EAEAI,EAAAA,UAAU,GAAG;MACX,MAAM;EAAEzG,MAAAA,MAAAA;OAAQ,GAAG,IAAI,CAAC0B,OAAO,CAAA;EAE/B,IAAA,IAAI,OAAO1B,MAAM,KAAK,QAAQ,EAAE;EAC9B,MAAA,OAAOA,MAAM,CAAC0G,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAACC,KAAK,IAAIC,MAAM,CAACC,QAAQ,CAACF,KAAK,EAAE,EAAE,CAAC,CAAC,CAAA;EACnE,KAAA;EAEA,IAAA,IAAI,OAAO5G,MAAM,KAAK,UAAU,EAAE;QAChC,OAAO+G,UAAU,IAAI/G,MAAM,CAAC+G,UAAU,EAAE,IAAI,CAACvE,QAAQ,CAAC,CAAA;EACxD,KAAA;EAEA,IAAA,OAAOxC,MAAM,CAAA;EACf,GAAA;IAEA8F,wBAAwB,CAACkB,GAAG,EAAE;MAC5B,OAAOZ,gBAAO,CAACY,GAAG,EAAE,CAAC,IAAI,CAACxE,QAAQ,CAAC,CAAC,CAAA;EACtC,GAAA;IAEAgE,gBAAgB,CAACH,UAAU,EAAE;EAC3B,IAAA,MAAMY,qBAAqB,GAAG;EAC5BhH,MAAAA,SAAS,EAAEoG,UAAU;EACrBa,MAAAA,SAAS,EAAE,CACT;EACEC,QAAAA,IAAI,EAAE,MAAM;EACZC,QAAAA,OAAO,EAAE;EACPtH,UAAAA,kBAAkB,EAAE,IAAI,CAAC4B,OAAO,CAAC5B,kBAAAA;EACnC,SAAA;EACF,OAAC,EACD;EACEqH,QAAAA,IAAI,EAAE,QAAQ;EACdC,QAAAA,OAAO,EAAE;YACPpH,MAAM,EAAE,IAAI,CAACyG,UAAU,EAAA;EACzB,SAAA;EACF,OAAC,EACD;EACEU,QAAAA,IAAI,EAAE,iBAAiB;EACvBC,QAAAA,OAAO,EAAE;EACP1H,UAAAA,QAAQ,EAAE,IAAI,CAACgC,OAAO,CAAChC,QAAAA;EACzB,SAAA;EACF,OAAC,EACD;EACEyH,QAAAA,IAAI,EAAE,OAAO;EACbC,QAAAA,OAAO,EAAE;EACPvG,UAAAA,OAAO,EAAG,CAAG,CAAA,EAAA,IAAI,CAACD,WAAW,CAACpD,IAAK,CAAA,MAAA,CAAA;EACrC,SAAA;EACF,OAAC,EACD;EACE2J,QAAAA,IAAI,EAAE,iBAAiB;EACvBE,QAAAA,OAAO,EAAE,IAAI;EACbC,QAAAA,KAAK,EAAE,YAAY;UACnBC,EAAE,EAAEC,IAAI,IAAI;EACV;EACA;EACA,UAAA,IAAI,CAAC5D,cAAc,EAAE,CAAChB,YAAY,CAAC,uBAAuB,EAAE4E,IAAI,CAACC,KAAK,CAACxH,SAAS,CAAC,CAAA;EACnF,SAAA;SACD,CAAA;OAEJ,CAAA;MAED,OAAO;EACL,MAAA,GAAGgH,qBAAqB;QACxB,GAAGb,gBAAO,CAAC,IAAI,CAAC1E,OAAO,CAACxB,YAAY,EAAE,CAAC+G,qBAAqB,CAAC,CAAA;OAC9D,CAAA;EACH,GAAA;EAEAxF,EAAAA,aAAa,GAAG;MACd,MAAMiG,QAAQ,GAAG,IAAI,CAAChG,OAAO,CAAClB,OAAO,CAACkG,KAAK,CAAC,GAAG,CAAC,CAAA;EAEhD,IAAA,KAAK,MAAMlG,OAAO,IAAIkH,QAAQ,EAAE;QAC9B,IAAIlH,OAAO,KAAK,OAAO,EAAE;UACvB8B,YAAY,CAAC+B,EAAE,CAAC,IAAI,CAAC7B,QAAQ,EAAE,IAAI,CAAC5B,WAAW,CAACwC,SAAS,CAAC1E,WAAW,CAAC,EAAE,IAAI,CAACgD,OAAO,CAACrB,QAAQ,EAAE2F,KAAK,IAAI;EACtG,UAAA,MAAM2B,OAAO,GAAG,IAAI,CAAC5B,4BAA4B,CAACC,KAAK,CAAC,CAAA;YACxD2B,OAAO,CAAC5F,MAAM,EAAE,CAAA;EAClB,SAAC,CAAC,CAAA;EACJ,OAAC,MAAM,IAAIvB,OAAO,KAAKpC,cAAc,EAAE;UACrC,MAAMwJ,OAAO,GAAGpH,OAAO,KAAKvC,aAAa,GACvC,IAAI,CAAC2C,WAAW,CAACwC,SAAS,CAACvE,gBAAgB,CAAC,GAC5C,IAAI,CAAC+B,WAAW,CAACwC,SAAS,CAACzE,aAAa,CAAC,CAAA;UAC3C,MAAMkJ,QAAQ,GAAGrH,OAAO,KAAKvC,aAAa,GACxC,IAAI,CAAC2C,WAAW,CAACwC,SAAS,CAACtE,gBAAgB,CAAC,GAC5C,IAAI,CAAC8B,WAAW,CAACwC,SAAS,CAACxE,cAAc,CAAC,CAAA;EAE5C0D,QAAAA,YAAY,CAAC+B,EAAE,CAAC,IAAI,CAAC7B,QAAQ,EAAEoF,OAAO,EAAE,IAAI,CAAClG,OAAO,CAACrB,QAAQ,EAAE2F,KAAK,IAAI;EACtE,UAAA,MAAM2B,OAAO,GAAG,IAAI,CAAC5B,4BAA4B,CAACC,KAAK,CAAC,CAAA;EACxD2B,UAAAA,OAAO,CAACvG,cAAc,CAAC4E,KAAK,CAAC8B,IAAI,KAAK,SAAS,GAAG5J,aAAa,GAAGD,aAAa,CAAC,GAAG,IAAI,CAAA;YACvF0J,OAAO,CAACxF,MAAM,EAAE,CAAA;EAClB,SAAC,CAAC,CAAA;EACFG,QAAAA,YAAY,CAAC+B,EAAE,CAAC,IAAI,CAAC7B,QAAQ,EAAEqF,QAAQ,EAAE,IAAI,CAACnG,OAAO,CAACrB,QAAQ,EAAE2F,KAAK,IAAI;EACvE,UAAA,MAAM2B,OAAO,GAAG,IAAI,CAAC5B,4BAA4B,CAACC,KAAK,CAAC,CAAA;YACxD2B,OAAO,CAACvG,cAAc,CAAC4E,KAAK,CAAC8B,IAAI,KAAK,UAAU,GAAG5J,aAAa,GAAGD,aAAa,CAAC,GAC/E0J,OAAO,CAACnF,QAAQ,CAACkB,QAAQ,CAACsC,KAAK,CAAC+B,aAAa,CAAC,CAAA;YAEhDJ,OAAO,CAACzF,MAAM,EAAE,CAAA;EAClB,SAAC,CAAC,CAAA;EACJ,OAAA;EACF,KAAA;MAEA,IAAI,CAACQ,iBAAiB,GAAG,MAAM;QAC7B,IAAI,IAAI,CAACF,QAAQ,EAAE;UACjB,IAAI,CAACkC,IAAI,EAAE,CAAA;EACb,OAAA;OACD,CAAA;EAEDpC,IAAAA,YAAY,CAAC+B,EAAE,CAAC,IAAI,CAAC7B,QAAQ,CAACC,OAAO,CAAC1E,cAAc,CAAC,EAAEC,gBAAgB,EAAE,IAAI,CAAC0E,iBAAiB,CAAC,CAAA;EAClG,GAAA;EAEAf,EAAAA,SAAS,GAAG;MACV,MAAMpB,KAAK,GAAG,IAAI,CAACiC,QAAQ,CAACG,YAAY,CAAC,OAAO,CAAC,CAAA;MAEjD,IAAI,CAACpC,KAAK,EAAE;EACV,MAAA,OAAA;EACF,KAAA;EAEA,IAAA,IAAI,CAAC,IAAI,CAACiC,QAAQ,CAACG,YAAY,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAACH,QAAQ,CAACwF,WAAW,CAACC,IAAI,EAAE,EAAE;QAClF,IAAI,CAACzF,QAAQ,CAACI,YAAY,CAAC,YAAY,EAAErC,KAAK,CAAC,CAAA;EACjD,KAAA;MAEA,IAAI,CAACiC,QAAQ,CAACI,YAAY,CAAC,wBAAwB,EAAErC,KAAK,CAAC,CAAC;EAC5D,IAAA,IAAI,CAACiC,QAAQ,CAACsC,eAAe,CAAC,OAAO,CAAC,CAAA;EACxC,GAAA;EAEA3C,EAAAA,MAAM,GAAG;MACP,IAAI,IAAI,CAACF,QAAQ,EAAE,IAAI,IAAI,CAACd,UAAU,EAAE;QACtC,IAAI,CAACA,UAAU,GAAG,IAAI,CAAA;EACtB,MAAA,OAAA;EACF,KAAA;MAEA,IAAI,CAACA,UAAU,GAAG,IAAI,CAAA;MAEtB,IAAI,CAAC+G,WAAW,CAAC,MAAM;QACrB,IAAI,IAAI,CAAC/G,UAAU,EAAE;UACnB,IAAI,CAAC2B,IAAI,EAAE,CAAA;EACb,OAAA;OACD,EAAE,IAAI,CAACpB,OAAO,CAAC7B,KAAK,CAACiD,IAAI,CAAC,CAAA;EAC7B,GAAA;EAEAZ,EAAAA,MAAM,GAAG;EACP,IAAA,IAAI,IAAI,CAAC2C,oBAAoB,EAAE,EAAE;EAC/B,MAAA,OAAA;EACF,KAAA;MAEA,IAAI,CAAC1D,UAAU,GAAG,KAAK,CAAA;MAEvB,IAAI,CAAC+G,WAAW,CAAC,MAAM;EACrB,MAAA,IAAI,CAAC,IAAI,CAAC/G,UAAU,EAAE;UACpB,IAAI,CAACuD,IAAI,EAAE,CAAA;EACb,OAAA;OACD,EAAE,IAAI,CAAChD,OAAO,CAAC7B,KAAK,CAAC6E,IAAI,CAAC,CAAA;EAC7B,GAAA;EAEAwD,EAAAA,WAAW,CAACC,OAAO,EAAEC,OAAO,EAAE;EAC5B/F,IAAAA,YAAY,CAAC,IAAI,CAACnB,QAAQ,CAAC,CAAA;MAC3B,IAAI,CAACA,QAAQ,GAAGmH,UAAU,CAACF,OAAO,EAAEC,OAAO,CAAC,CAAA;EAC9C,GAAA;EAEAvD,EAAAA,oBAAoB,GAAG;EACrB,IAAA,OAAOyD,MAAM,CAACC,MAAM,CAAC,IAAI,CAACnH,cAAc,CAAC,CAACoH,QAAQ,CAAC,IAAI,CAAC,CAAA;EAC1D,GAAA;IAEAC,UAAU,CAAC3H,MAAM,EAAE;MACjB,MAAM4H,cAAc,GAAGC,WAAW,CAACC,iBAAiB,CAAC,IAAI,CAACpG,QAAQ,CAAC,CAAA;MAEnE,KAAK,MAAMqG,aAAa,IAAIP,MAAM,CAACQ,IAAI,CAACJ,cAAc,CAAC,EAAE;EACvD,MAAA,IAAIjL,qBAAqB,CAACsL,GAAG,CAACF,aAAa,CAAC,EAAE;UAC5C,OAAOH,cAAc,CAACG,aAAa,CAAC,CAAA;EACtC,OAAA;EACF,KAAA;EAEA/H,IAAAA,MAAM,GAAG;EACP,MAAA,GAAG4H,cAAc;QACjB,IAAI,OAAO5H,MAAM,KAAK,QAAQ,IAAIA,MAAM,GAAGA,MAAM,GAAG,EAAE,CAAA;OACvD,CAAA;EACDA,IAAAA,MAAM,GAAG,IAAI,CAACkI,eAAe,CAAClI,MAAM,CAAC,CAAA;EACrCA,IAAAA,MAAM,GAAG,IAAI,CAACmI,iBAAiB,CAACnI,MAAM,CAAC,CAAA;EACvC,IAAA,IAAI,CAACoI,gBAAgB,CAACpI,MAAM,CAAC,CAAA;EAC7B,IAAA,OAAOA,MAAM,CAAA;EACf,GAAA;IAEAmI,iBAAiB,CAACnI,MAAM,EAAE;EACxBA,IAAAA,MAAM,CAACnB,SAAS,GAAGmB,MAAM,CAACnB,SAAS,KAAK,KAAK,GAAGsE,QAAQ,CAACE,IAAI,GAAGgF,mBAAU,CAACrI,MAAM,CAACnB,SAAS,CAAC,CAAA;EAE5F,IAAA,IAAI,OAAOmB,MAAM,CAACjB,KAAK,KAAK,QAAQ,EAAE;QACpCiB,MAAM,CAACjB,KAAK,GAAG;UACbiD,IAAI,EAAEhC,MAAM,CAACjB,KAAK;UAClB6E,IAAI,EAAE5D,MAAM,CAACjB,KAAAA;SACd,CAAA;EACH,KAAA;EAEA,IAAA,IAAI,OAAOiB,MAAM,CAACP,KAAK,KAAK,QAAQ,EAAE;QACpCO,MAAM,CAACP,KAAK,GAAGO,MAAM,CAACP,KAAK,CAACkF,QAAQ,EAAE,CAAA;EACxC,KAAA;EAEA,IAAA,IAAI,OAAO3E,MAAM,CAACsE,OAAO,KAAK,QAAQ,EAAE;QACtCtE,MAAM,CAACsE,OAAO,GAAGtE,MAAM,CAACsE,OAAO,CAACK,QAAQ,EAAE,CAAA;EAC5C,KAAA;EAEA,IAAA,OAAO3E,MAAM,CAAA;EACf,GAAA;EAEAqF,EAAAA,kBAAkB,GAAG;MACnB,MAAMrF,MAAM,GAAG,EAAE,CAAA;EAEjB,IAAA,KAAK,MAAM,CAACsI,GAAG,EAAExC,KAAK,CAAC,IAAI0B,MAAM,CAACe,OAAO,CAAC,IAAI,CAAC3H,OAAO,CAAC,EAAE;QACvD,IAAI,IAAI,CAACd,WAAW,CAACtB,OAAO,CAAC8J,GAAG,CAAC,KAAKxC,KAAK,EAAE;EAC3C9F,QAAAA,MAAM,CAACsI,GAAG,CAAC,GAAGxC,KAAK,CAAA;EACrB,OAAA;EACF,KAAA;MAEA9F,MAAM,CAACT,QAAQ,GAAG,KAAK,CAAA;MACvBS,MAAM,CAACN,OAAO,GAAG,QAAQ,CAAA;;EAEzB;EACA;EACA;EACA,IAAA,OAAOM,MAAM,CAAA;EACf,GAAA;EAEA+B,EAAAA,cAAc,GAAG;MACf,IAAI,IAAI,CAACxB,OAAO,EAAE;EAChB,MAAA,IAAI,CAACA,OAAO,CAACiI,OAAO,EAAE,CAAA;QACtB,IAAI,CAACjI,OAAO,GAAG,IAAI,CAAA;EACrB,KAAA;MAEA,IAAI,IAAI,CAACG,GAAG,EAAE;EACZ,MAAA,IAAI,CAACA,GAAG,CAACoD,MAAM,EAAE,CAAA;QACjB,IAAI,CAACpD,GAAG,GAAG,IAAI,CAAA;EACjB,KAAA;EACF,GAAA;;EAEA;IACA,OAAO+H,eAAe,CAACzI,MAAM,EAAE;EAC7B,IAAA,OAAO,IAAI,CAAC0I,IAAI,CAAC,YAAY;QAC3B,MAAMhC,IAAI,GAAG9G,OAAO,CAACuF,mBAAmB,CAAC,IAAI,EAAEnF,MAAM,CAAC,CAAA;EAEtD,MAAA,IAAI,OAAOA,MAAM,KAAK,QAAQ,EAAE;EAC9B,QAAA,OAAA;EACF,OAAA;EAEA,MAAA,IAAI,OAAO0G,IAAI,CAAC1G,MAAM,CAAC,KAAK,WAAW,EAAE;EACvC,QAAA,MAAM,IAAIE,SAAS,CAAE,CAAmBF,iBAAAA,EAAAA,MAAO,GAAE,CAAC,CAAA;EACpD,OAAA;QAEA0G,IAAI,CAAC1G,MAAM,CAAC,EAAE,CAAA;EAChB,KAAC,CAAC,CAAA;EACJ,GAAA;EACF,CAAA;;EAEA;EACA;EACA;;AAEA2I,6BAAkB,CAAC/I,OAAO,CAAC;;;;;;;;"}