{"version":3,"file":"chunk-foundation.accordion-1d00be0a-esm.js","sources":["node_modules/foundation-sites/js/foundation.accordion.js"],"sourcesContent":["import $ from 'jquery';\nimport { Plugin } from './foundation.core.plugin';\nimport { onLoad, GetYoDigits } from './foundation.core.utils';\nimport { Keyboard } from './foundation.util.keyboard';\n\n/**\n * Accordion module.\n * @module foundation.accordion\n * @requires foundation.util.keyboard\n */\n\nclass Accordion extends Plugin {\n /**\n * Creates a new instance of an accordion.\n * @class\n * @name Accordion\n * @fires Accordion#init\n * @param {jQuery} element - jQuery object to make into an accordion.\n * @param {Object} options - a plain object with settings to override the default options.\n */\n _setup(element, options) {\n this.$element = element;\n this.options = $.extend({}, Accordion.defaults, this.$element.data(), options);\n\n this.className = 'Accordion'; // ie9 back compat\n this._init();\n\n Keyboard.register('Accordion', {\n 'ENTER': 'toggle',\n 'SPACE': 'toggle',\n 'ARROW_DOWN': 'next',\n 'ARROW_UP': 'previous',\n 'HOME': 'first',\n 'END': 'last',\n });\n }\n\n /**\n * Initializes the accordion by animating the preset active pane(s).\n * @private\n */\n _init() {\n this._isInitializing = true;\n\n this.$tabs = this.$element.children('[data-accordion-item]');\n\n\n this.$tabs.each(function(idx, el) {\n var $el = $(el),\n $content = $el.children('[data-tab-content]'),\n id = $content[0].id || GetYoDigits(6, 'accordion'),\n linkId = (el.id) ? `${el.id}-label` : `${id}-label`;\n\n $el.find('a:first').attr({\n 'aria-controls': id,\n 'id': linkId,\n 'aria-expanded': false\n });\n\n $content.attr({'role': 'region', 'aria-labelledby': linkId, 'aria-hidden': true, 'id': id});\n });\n\n var $initActive = this.$element.find('.is-active').children('[data-tab-content]');\n if ($initActive.length) {\n // Save up the initial hash to return to it later when going back in history\n this._initialAnchor = $initActive.prev('a').attr('href');\n this._openSingleTab($initActive);\n }\n\n this._checkDeepLink = () => {\n var anchor = window.location.hash;\n\n if (!anchor.length) {\n // If we are still initializing and there is no anchor, then there is nothing to do\n if (this._isInitializing) return;\n // Otherwise, move to the initial anchor\n if (this._initialAnchor) anchor = this._initialAnchor;\n }\n\n var $anchor = anchor && $(anchor);\n var $link = anchor && this.$element.find(`[href$=\"${anchor}\"]`);\n // Whether the anchor element that has been found is part of this element\n var isOwnAnchor = !!($anchor.length && $link.length);\n\n if (isOwnAnchor) {\n // If there is an anchor for the hash, open it (if not already active)\n if ($anchor && $link && $link.length) {\n if (!$link.parent('[data-accordion-item]').hasClass('is-active')) {\n this._openSingleTab($anchor);\n }\n }\n // Otherwise, close everything\n else {\n this._closeAllTabs();\n }\n\n // Roll up a little to show the titles\n if (this.options.deepLinkSmudge) {\n onLoad($(window), () => {\n var offset = this.$element.offset();\n $('html, body').animate({ scrollTop: offset.top - this.options.deepLinkSmudgeOffset }, this.options.deepLinkSmudgeDelay);\n });\n }\n\n /**\n * Fires when the plugin has deeplinked at pageload\n * @event Accordion#deeplink\n */\n this.$element.trigger('deeplink.zf.accordion', [$link, $anchor]);\n }\n }\n\n //use browser to open a tab, if it exists in this tabset\n if (this.options.deepLink) {\n this._checkDeepLink();\n }\n\n this._events();\n\n this._isInitializing = false;\n }\n\n /**\n * Adds event handlers for items within the accordion.\n * @private\n */\n _events() {\n var _this = this;\n\n this.$tabs.each(function() {\n var $elem = $(this);\n var $tabContent = $elem.children('[data-tab-content]');\n if ($tabContent.length) {\n $elem.children('a').off('click.zf.accordion keydown.zf.accordion')\n .on('click.zf.accordion', function(e) {\n e.preventDefault();\n _this.toggle($tabContent);\n }).on('keydown.zf.accordion', function(e) {\n Keyboard.handleKey(e, 'Accordion', {\n toggle: function() {\n _this.toggle($tabContent);\n },\n next: function() {\n var $a = $elem.next().find('a').focus();\n if (!_this.options.multiExpand) {\n $a.trigger('click.zf.accordion')\n }\n },\n previous: function() {\n var $a = $elem.prev().find('a').focus();\n if (!_this.options.multiExpand) {\n $a.trigger('click.zf.accordion')\n }\n },\n first: function() {\n var $a = _this.$tabs.first().find('.accordion-title').focus();\n if (!_this.options.multiExpand) {\n $a.trigger('click.zf.accordion');\n }\n },\n last: function() {\n var $a = _this.$tabs.last().find('.accordion-title').focus();\n if (!_this.options.multiExpand) {\n $a.trigger('click.zf.accordion');\n }\n },\n handled: function() {\n e.preventDefault();\n }\n });\n });\n }\n });\n if (this.options.deepLink) {\n $(window).on('hashchange', this._checkDeepLink);\n }\n }\n\n /**\n * Toggles the selected content pane's open/close state.\n * @param {jQuery} $target - jQuery object of the pane to toggle (`.accordion-content`).\n * @function\n */\n toggle($target) {\n if ($target.closest('[data-accordion]').is('[disabled]')) {\n console.info('Cannot toggle an accordion that is disabled.');\n return;\n }\n if ($target.parent().hasClass('is-active')) {\n this.up($target);\n } else {\n this.down($target);\n }\n //either replace or update browser history\n if (this.options.deepLink) {\n var anchor = $target.prev('a').attr('href');\n\n if (this.options.updateHistory) {\n history.pushState({}, '', anchor);\n } else {\n history.replaceState({}, '', anchor);\n }\n }\n }\n\n /**\n * Opens the accordion tab defined by `$target`.\n * @param {jQuery} $target - Accordion pane to open (`.accordion-content`).\n * @fires Accordion#down\n * @function\n */\n down($target) {\n if ($target.closest('[data-accordion]').is('[disabled]')) {\n console.info('Cannot call down on an accordion that is disabled.');\n return;\n }\n\n if (this.options.multiExpand)\n this._openTab($target);\n else\n this._openSingleTab($target);\n }\n\n /**\n * Closes the tab defined by `$target`.\n * It may be ignored if the Accordion options don't allow it.\n *\n * @param {jQuery} $target - Accordion tab to close (`.accordion-content`).\n * @fires Accordion#up\n * @function\n */\n up($target) {\n if (this.$element.is('[disabled]')) {\n console.info('Cannot call up on an accordion that is disabled.');\n return;\n }\n\n // Don't close the item if it is already closed\n const $targetItem = $target.parent();\n if (!$targetItem.hasClass('is-active')) return;\n\n // Don't close the item if there is no other active item (unless with `allowAllClosed`)\n const $othersItems = $targetItem.siblings();\n if (!this.options.allowAllClosed && !$othersItems.hasClass('is-active')) return;\n\n this._closeTab($target);\n }\n\n /**\n * Make the tab defined by `$target` the only opened tab, closing all others tabs.\n * @param {jQuery} $target - Accordion tab to open (`.accordion-content`).\n * @function\n * @private\n */\n _openSingleTab($target) {\n // Close all the others active tabs.\n const $activeContents = this.$element.children('.is-active').children('[data-tab-content]');\n if ($activeContents.length) {\n this._closeTab($activeContents.not($target));\n }\n\n // Then open the target.\n this._openTab($target);\n }\n\n /**\n * Opens the tab defined by `$target`.\n * @param {jQuery} $target - Accordion tab to open (`.accordion-content`).\n * @fires Accordion#down\n * @function\n * @private\n */\n _openTab($target) {\n const $targetItem = $target.parent();\n const targetContentId = $target.attr('aria-labelledby');\n\n $target.attr('aria-hidden', false);\n $targetItem.addClass('is-active');\n\n $(`#${targetContentId}`).attr({\n 'aria-expanded': true\n });\n\n $target.finish().slideDown(this.options.slideSpeed, () => {\n /**\n * Fires when the tab is done opening.\n * @event Accordion#down\n */\n this.$element.trigger('down.zf.accordion', [$target]);\n });\n }\n\n /**\n * Closes the tab defined by `$target`.\n * @param {jQuery} $target - Accordion tab to close (`.accordion-content`).\n * @fires Accordion#up\n * @function\n * @private\n */\n _closeTab($target) {\n const $targetItem = $target.parent();\n const targetContentId = $target.attr('aria-labelledby');\n\n $target.attr('aria-hidden', true)\n $targetItem.removeClass('is-active');\n\n $(`#${targetContentId}`).attr({\n 'aria-expanded': false\n });\n\n $target.finish().slideUp(this.options.slideSpeed, () => {\n /**\n * Fires when the tab is done collapsing up.\n * @event Accordion#up\n */\n this.$element.trigger('up.zf.accordion', [$target]);\n });\n }\n\n /**\n * Closes all active tabs\n * @fires Accordion#up\n * @function\n * @private\n */\n _closeAllTabs() {\n var $activeTabs = this.$element.children('.is-active').children('[data-tab-content]');\n if ($activeTabs.length) {\n this._closeTab($activeTabs);\n }\n }\n\n /**\n * Destroys an instance of an accordion.\n * @fires Accordion#destroyed\n * @function\n */\n _destroy() {\n this.$element.find('[data-tab-content]').stop(true).slideUp(0).css('display', '');\n this.$element.find('a').off('.zf.accordion');\n if (this.options.deepLink) {\n $(window).off('hashchange', this._checkDeepLink);\n }\n\n }\n}\n\nAccordion.defaults = {\n /**\n * Amount of time to animate the opening of an accordion pane.\n * @option\n * @type {number}\n * @default 250\n */\n slideSpeed: 250,\n /**\n * Allow the accordion to have multiple open panes.\n * @option\n * @type {boolean}\n * @default false\n */\n multiExpand: false,\n /**\n * Allow the accordion to close all panes.\n * @option\n * @type {boolean}\n * @default false\n */\n allowAllClosed: false,\n /**\n * Link the location hash to the open pane.\n * Set the location hash when the opened pane changes, and open and scroll to the corresponding pane when the location changes.\n * @option\n * @type {boolean}\n * @default false\n */\n deepLink: false,\n /**\n * If `deepLink` is enabled, adjust the deep link scroll to make sure the top of the accordion panel is visible\n * @option\n * @type {boolean}\n * @default false\n */\n deepLinkSmudge: false,\n /**\n * If `deepLinkSmudge` is enabled, animation time (ms) for the deep link adjustment\n * @option\n * @type {number}\n * @default 300\n */\n deepLinkSmudgeDelay: 300,\n /**\n * If `deepLinkSmudge` is enabled, the offset for scrollToTtop to prevent overlap by a sticky element at the top of the page\n * @option\n * @type {number}\n * @default 0\n */\n deepLinkSmudgeOffset: 0,\n /**\n * If `deepLink` is enabled, update the browser history with the open accordion\n * @option\n * @type {boolean}\n * @default false\n */\n updateHistory: false\n};\n\nexport { Accordion };\n"],"names":["Accordion","Plugin","_setup","element","options","$element","$","extend","defaults","data","className","_init","Keyboard","register","_isInitializing","$tabs","children","each","idx","el","$el","$content","id","GetYoDigits","linkId","find","attr","$initActive","length","_initialAnchor","prev","_openSingleTab","_checkDeepLink","anchor","window","location","hash","$anchor","$link","isOwnAnchor","parent","hasClass","_closeAllTabs","deepLinkSmudge","onLoad","offset","animate","scrollTop","top","deepLinkSmudgeOffset","deepLinkSmudgeDelay","trigger","deepLink","_events","_this","$elem","$tabContent","off","on","e","preventDefault","toggle","handleKey","next","$a","focus","multiExpand","previous","first","last","handled","$target","closest","is","console","info","up","down","updateHistory","history","pushState","replaceState","_openTab","$targetItem","$othersItems","siblings","allowAllClosed","_closeTab","$activeContents","not","targetContentId","addClass","finish","slideDown","slideSpeed","removeClass","slideUp","$activeTabs","_destroy","stop","css"],"mappings":";;;;;AAKA;;;;;;AAMA,MAAMA,SAAS,SAASC,MAAM,CAAC;;;;;;;;;EAS7BC,MAAMA,CAACC,OAAO,EAAEC,OAAO,EAAE;IACvB,IAAI,CAACC,QAAQ,GAAGF,OAAO;IACvB,IAAI,CAACC,OAAO,GAAGE,MAAC,CAACC,MAAM,CAAC,EAAE,EAAEP,SAAS,CAACQ,QAAQ,EAAE,IAAI,CAACH,QAAQ,CAACI,IAAI,EAAE,EAAEL,OAAO,CAAC;IAE9E,IAAI,CAACM,SAAS,GAAG,WAAW,CAAC;IAC7B,IAAI,CAACC,KAAK,EAAE;IAEZC,QAAQ,CAACC,QAAQ,CAAC,WAAW,EAAE;MAC7B,OAAO,EAAE,QAAQ;MACjB,OAAO,EAAE,QAAQ;MACjB,YAAY,EAAE,MAAM;MACpB,UAAU,EAAE,UAAU;MACtB,MAAM,EAAE,OAAO;MACf,KAAK,EAAE;KACR,CAAC;;;;;;;EAOJF,KAAKA,GAAG;IACN,IAAI,CAACG,eAAe,GAAG,IAAI;IAE3B,IAAI,CAACC,KAAK,GAAG,IAAI,CAACV,QAAQ,CAACW,QAAQ,CAAC,uBAAuB,CAAC;IAG5D,IAAI,CAACD,KAAK,CAACE,IAAI,CAAC,UAASC,GAAG,EAAEC,EAAE,EAAE;MAChC,IAAIC,GAAG,GAAGd,MAAC,CAACa,EAAE,CAAC;QACXE,QAAQ,GAAGD,GAAG,CAACJ,QAAQ,CAAC,oBAAoB,CAAC;QAC7CM,EAAE,GAAGD,QAAQ,CAAC,CAAC,CAAC,CAACC,EAAE,IAAIC,WAAW,CAAC,CAAC,EAAE,WAAW,CAAC;QAClDC,MAAM,GAAIL,EAAE,CAACG,EAAE,GAAK,GAAEH,EAAE,CAACG,EAAG,QAAO,GAAI,GAAEA,EAAG,QAAO;MAEvDF,GAAG,CAACK,IAAI,CAAC,SAAS,CAAC,CAACC,IAAI,CAAC;QACvB,eAAe,EAAEJ,EAAE;QACnB,IAAI,EAAEE,MAAM;QACZ,eAAe,EAAE;OAClB,CAAC;MAEFH,QAAQ,CAACK,IAAI,CAAC;QAAC,MAAM,EAAE,QAAQ;QAAE,iBAAiB,EAAEF,MAAM;QAAE,aAAa,EAAE,IAAI;QAAE,IAAI,EAAEF;OAAG,CAAC;KAC5F,CAAC;IAEF,IAAIK,WAAW,GAAG,IAAI,CAACtB,QAAQ,CAACoB,IAAI,CAAC,YAAY,CAAC,CAACT,QAAQ,CAAC,oBAAoB,CAAC;IACjF,IAAIW,WAAW,CAACC,MAAM,EAAE;;MAEtB,IAAI,CAACC,cAAc,GAAGF,WAAW,CAACG,IAAI,CAAC,GAAG,CAAC,CAACJ,IAAI,CAAC,MAAM,CAAC;MACxD,IAAI,CAACK,cAAc,CAACJ,WAAW,CAAC;;IAGlC,IAAI,CAACK,cAAc,GAAG,MAAM;MAC1B,IAAIC,MAAM,GAAGC,MAAM,CAACC,QAAQ,CAACC,IAAI;MAEjC,IAAI,CAACH,MAAM,CAACL,MAAM,EAAE;;QAElB,IAAI,IAAI,CAACd,eAAe,EAAE;;QAE1B,IAAI,IAAI,CAACe,cAAc,EAAEI,MAAM,GAAG,IAAI,CAACJ,cAAc;;MAGvD,IAAIQ,OAAO,GAAGJ,MAAM,IAAI3B,MAAC,CAAC2B,MAAM,CAAC;MACjC,IAAIK,KAAK,GAAGL,MAAM,IAAI,IAAI,CAAC5B,QAAQ,CAACoB,IAAI,CAAE,WAAUQ,MAAO,IAAG,CAAC;;MAE/D,IAAIM,WAAW,GAAG,CAAC,EAAEF,OAAO,CAACT,MAAM,IAAIU,KAAK,CAACV,MAAM,CAAC;MAEpD,IAAIW,WAAW,EAAE;;QAEf,IAAIF,OAAO,IAAIC,KAAK,IAAIA,KAAK,CAACV,MAAM,EAAE;UACpC,IAAI,CAACU,KAAK,CAACE,MAAM,CAAC,uBAAuB,CAAC,CAACC,QAAQ,CAAC,WAAW,CAAC,EAAE;YAChE,IAAI,CAACV,cAAc,CAACM,OAAO,CAAC;;;;aAI3B;UACH,IAAI,CAACK,aAAa,EAAE;;;;QAItB,IAAI,IAAI,CAACtC,OAAO,CAACuC,cAAc,EAAE;UAC/BC,MAAM,CAACtC,MAAC,CAAC4B,MAAM,CAAC,EAAE,MAAM;YACtB,IAAIW,MAAM,GAAG,IAAI,CAACxC,QAAQ,CAACwC,MAAM,EAAE;YACnCvC,MAAC,CAAC,YAAY,CAAC,CAACwC,OAAO,CAAC;cAAEC,SAAS,EAAEF,MAAM,CAACG,GAAG,GAAG,IAAI,CAAC5C,OAAO,CAAC6C;aAAsB,EAAE,IAAI,CAAC7C,OAAO,CAAC8C,mBAAmB,CAAC;WACzH,CAAC;;;;;;;QAOJ,IAAI,CAAC7C,QAAQ,CAAC8C,OAAO,CAAC,uBAAuB,EAAE,CAACb,KAAK,EAAED,OAAO,CAAC,CAAC;;KAEnE;;;IAGD,IAAI,IAAI,CAACjC,OAAO,CAACgD,QAAQ,EAAE;MACzB,IAAI,CAACpB,cAAc,EAAE;;IAGvB,IAAI,CAACqB,OAAO,EAAE;IAEd,IAAI,CAACvC,eAAe,GAAG,KAAK;;;;;;;EAO9BuC,OAAOA,GAAG;IACR,IAAIC,KAAK,GAAG,IAAI;IAEhB,IAAI,CAACvC,KAAK,CAACE,IAAI,CAAC,YAAW;MACzB,IAAIsC,KAAK,GAAGjD,MAAC,CAAC,IAAI,CAAC;MACnB,IAAIkD,WAAW,GAAGD,KAAK,CAACvC,QAAQ,CAAC,oBAAoB,CAAC;MACtD,IAAIwC,WAAW,CAAC5B,MAAM,EAAE;QACtB2B,KAAK,CAACvC,QAAQ,CAAC,GAAG,CAAC,CAACyC,GAAG,CAAC,yCAAyC,CAAC,CAC1DC,EAAE,CAAC,oBAAoB,EAAE,UAASC,CAAC,EAAE;UAC3CA,CAAC,CAACC,cAAc,EAAE;UAClBN,KAAK,CAACO,MAAM,CAACL,WAAW,CAAC;SAC1B,CAAC,CAACE,EAAE,CAAC,sBAAsB,EAAE,UAASC,CAAC,EAAE;UACxC/C,QAAQ,CAACkD,SAAS,CAACH,CAAC,EAAE,WAAW,EAAE;YACjCE,MAAM,EAAE,YAAW;cACjBP,KAAK,CAACO,MAAM,CAACL,WAAW,CAAC;aAC1B;YACDO,IAAI,EAAE,YAAW;cACf,IAAIC,EAAE,GAAGT,KAAK,CAACQ,IAAI,EAAE,CAACtC,IAAI,CAAC,GAAG,CAAC,CAACwC,KAAK,EAAE;cACvC,IAAI,CAACX,KAAK,CAAClD,OAAO,CAAC8D,WAAW,EAAE;gBAC9BF,EAAE,CAACb,OAAO,CAAC,oBAAoB,CAAC;;aAEnC;YACDgB,QAAQ,EAAE,YAAW;cACnB,IAAIH,EAAE,GAAGT,KAAK,CAACzB,IAAI,EAAE,CAACL,IAAI,CAAC,GAAG,CAAC,CAACwC,KAAK,EAAE;cACvC,IAAI,CAACX,KAAK,CAAClD,OAAO,CAAC8D,WAAW,EAAE;gBAC9BF,EAAE,CAACb,OAAO,CAAC,oBAAoB,CAAC;;aAEnC;YACDiB,KAAK,EAAE,YAAW;cAChB,IAAIJ,EAAE,GAAGV,KAAK,CAACvC,KAAK,CAACqD,KAAK,EAAE,CAAC3C,IAAI,CAAC,kBAAkB,CAAC,CAACwC,KAAK,EAAE;cAC7D,IAAI,CAACX,KAAK,CAAClD,OAAO,CAAC8D,WAAW,EAAE;gBAC7BF,EAAE,CAACb,OAAO,CAAC,oBAAoB,CAAC;;aAEpC;YACDkB,IAAI,EAAE,YAAW;cACf,IAAIL,EAAE,GAAGV,KAAK,CAACvC,KAAK,CAACsD,IAAI,EAAE,CAAC5C,IAAI,CAAC,kBAAkB,CAAC,CAACwC,KAAK,EAAE;cAC5D,IAAI,CAACX,KAAK,CAAClD,OAAO,CAAC8D,WAAW,EAAE;gBAC7BF,EAAE,CAACb,OAAO,CAAC,oBAAoB,CAAC;;aAEpC;YACDmB,OAAO,EAAE,YAAW;cAClBX,CAAC,CAACC,cAAc,EAAE;;WAErB,CAAC;SACH,CAAC;;KAEL,CAAC;IACF,IAAI,IAAI,CAACxD,OAAO,CAACgD,QAAQ,EAAE;MACzB9C,MAAC,CAAC4B,MAAM,CAAC,CAACwB,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC1B,cAAc,CAAC;;;;;;;;;EASnD6B,MAAMA,CAACU,OAAO,EAAE;IACd,IAAIA,OAAO,CAACC,OAAO,CAAC,kBAAkB,CAAC,CAACC,EAAE,CAAC,YAAY,CAAC,EAAE;MACxDC,OAAO,CAACC,IAAI,CAAC,8CAA8C,CAAC;MAC5D;;IAEF,IAAIJ,OAAO,CAAC/B,MAAM,EAAE,CAACC,QAAQ,CAAC,WAAW,CAAC,EAAE;MAC1C,IAAI,CAACmC,EAAE,CAACL,OAAO,CAAC;KACjB,MAAM;MACL,IAAI,CAACM,IAAI,CAACN,OAAO,CAAC;;;IAGpB,IAAI,IAAI,CAACnE,OAAO,CAACgD,QAAQ,EAAE;MACzB,IAAInB,MAAM,GAAGsC,OAAO,CAACzC,IAAI,CAAC,GAAG,CAAC,CAACJ,IAAI,CAAC,MAAM,CAAC;MAE3C,IAAI,IAAI,CAACtB,OAAO,CAAC0E,aAAa,EAAE;QAC9BC,OAAO,CAACC,SAAS,CAAC,EAAE,EAAE,EAAE,EAAE/C,MAAM,CAAC;OAClC,MAAM;QACL8C,OAAO,CAACE,YAAY,CAAC,EAAE,EAAE,EAAE,EAAEhD,MAAM,CAAC;;;;;;;;;;;EAW1C4C,IAAIA,CAACN,OAAO,EAAE;IACZ,IAAIA,OAAO,CAACC,OAAO,CAAC,kBAAkB,CAAC,CAACC,EAAE,CAAC,YAAY,CAAC,EAAG;MACzDC,OAAO,CAACC,IAAI,CAAC,oDAAoD,CAAC;MAClE;;IAGF,IAAI,IAAI,CAACvE,OAAO,CAAC8D,WAAW,EAC1B,IAAI,CAACgB,QAAQ,CAACX,OAAO,CAAC,CAAC,KAEvB,IAAI,CAACxC,cAAc,CAACwC,OAAO,CAAC;;;;;;;;;;;EAWhCK,EAAEA,CAACL,OAAO,EAAE;IACV,IAAI,IAAI,CAAClE,QAAQ,CAACoE,EAAE,CAAC,YAAY,CAAC,EAAE;MAClCC,OAAO,CAACC,IAAI,CAAC,kDAAkD,CAAC;MAChE;;;;IAIF,MAAMQ,WAAW,GAAGZ,OAAO,CAAC/B,MAAM,EAAE;IACpC,IAAI,CAAC2C,WAAW,CAAC1C,QAAQ,CAAC,WAAW,CAAC,EAAE;;;IAGxC,MAAM2C,YAAY,GAAGD,WAAW,CAACE,QAAQ,EAAE;IAC3C,IAAI,CAAC,IAAI,CAACjF,OAAO,CAACkF,cAAc,IAAI,CAACF,YAAY,CAAC3C,QAAQ,CAAC,WAAW,CAAC,EAAE;IAEzE,IAAI,CAAC8C,SAAS,CAAChB,OAAO,CAAC;;;;;;;;;EASzBxC,cAAcA,CAACwC,OAAO,EAAE;;IAEtB,MAAMiB,eAAe,GAAG,IAAI,CAACnF,QAAQ,CAACW,QAAQ,CAAC,YAAY,CAAC,CAACA,QAAQ,CAAC,oBAAoB,CAAC;IAC3F,IAAIwE,eAAe,CAAC5D,MAAM,EAAE;MAC1B,IAAI,CAAC2D,SAAS,CAACC,eAAe,CAACC,GAAG,CAAClB,OAAO,CAAC,CAAC;;;;IAI9C,IAAI,CAACW,QAAQ,CAACX,OAAO,CAAC;;;;;;;;;;EAUxBW,QAAQA,CAACX,OAAO,EAAE;IAChB,MAAMY,WAAW,GAAGZ,OAAO,CAAC/B,MAAM,EAAE;IACpC,MAAMkD,eAAe,GAAGnB,OAAO,CAAC7C,IAAI,CAAC,iBAAiB,CAAC;IAEvD6C,OAAO,CAAC7C,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC;IAClCyD,WAAW,CAACQ,QAAQ,CAAC,WAAW,CAAC;IAEjCrF,MAAC,CAAE,IAAGoF,eAAgB,EAAC,CAAC,CAAChE,IAAI,CAAC;MAC5B,eAAe,EAAE;KAClB,CAAC;IAEF6C,OAAO,CAACqB,MAAM,EAAE,CAACC,SAAS,CAAC,IAAI,CAACzF,OAAO,CAAC0F,UAAU,EAAE,MAAM;;;;;MAKxD,IAAI,CAACzF,QAAQ,CAAC8C,OAAO,CAAC,mBAAmB,EAAE,CAACoB,OAAO,CAAC,CAAC;KACtD,CAAC;;;;;;;;;;EAUJgB,SAASA,CAAChB,OAAO,EAAE;IACjB,MAAMY,WAAW,GAAGZ,OAAO,CAAC/B,MAAM,EAAE;IACpC,MAAMkD,eAAe,GAAGnB,OAAO,CAAC7C,IAAI,CAAC,iBAAiB,CAAC;IAEvD6C,OAAO,CAAC7C,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC;IACjCyD,WAAW,CAACY,WAAW,CAAC,WAAW,CAAC;IAEpCzF,MAAC,CAAE,IAAGoF,eAAgB,EAAC,CAAC,CAAChE,IAAI,CAAC;MAC7B,eAAe,EAAE;KACjB,CAAC;IAEF6C,OAAO,CAACqB,MAAM,EAAE,CAACI,OAAO,CAAC,IAAI,CAAC5F,OAAO,CAAC0F,UAAU,EAAE,MAAM;;;;;MAKtD,IAAI,CAACzF,QAAQ,CAAC8C,OAAO,CAAC,iBAAiB,EAAE,CAACoB,OAAO,CAAC,CAAC;KACpD,CAAC;;;;;;;;;EASJ7B,aAAaA,GAAG;IACd,IAAIuD,WAAW,GAAG,IAAI,CAAC5F,QAAQ,CAACW,QAAQ,CAAC,YAAY,CAAC,CAACA,QAAQ,CAAC,oBAAoB,CAAC;IACrF,IAAIiF,WAAW,CAACrE,MAAM,EAAE;MACtB,IAAI,CAAC2D,SAAS,CAACU,WAAW,CAAC;;;;;;;;;EAS/BC,QAAQA,GAAG;IACT,IAAI,CAAC7F,QAAQ,CAACoB,IAAI,CAAC,oBAAoB,CAAC,CAAC0E,IAAI,CAAC,IAAI,CAAC,CAACH,OAAO,CAAC,CAAC,CAAC,CAACI,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC;IACjF,IAAI,CAAC/F,QAAQ,CAACoB,IAAI,CAAC,GAAG,CAAC,CAACgC,GAAG,CAAC,eAAe,CAAC;IAC5C,IAAI,IAAI,CAACrD,OAAO,CAACgD,QAAQ,EAAE;MACzB9C,MAAC,CAAC4B,MAAM,CAAC,CAACuB,GAAG,CAAC,YAAY,EAAE,IAAI,CAACzB,cAAc,CAAC;;;;AAMtDhC,SAAS,CAACQ,QAAQ,GAAG;;;;;;;EAOnBsF,UAAU,EAAE,GAAG;;;;;;;EAOf5B,WAAW,EAAE,KAAK;;;;;;;EAOlBoB,cAAc,EAAE,KAAK;;;;;;;;EAQrBlC,QAAQ,EAAE,KAAK;;;;;;;EAOfT,cAAc,EAAE,KAAK;;;;;;;EAOrBO,mBAAmB,EAAE,GAAG;;;;;;;EAOxBD,oBAAoB,EAAE,CAAC;;;;;;;EAOvB6B,aAAa,EAAE;CAChB;;;;"}