{"version":3,"file":"Main-OCafDaHJ.js","sources":["../../Client/legacy/Main.ts"],"sourcesContent":["import * as Common from '@shared/Common';\r\nimport * as Constants from '@shared/Constants';\r\nimport * as Storage from '@shared/Storage';\r\nimport dayjs from 'dayjs';\r\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\r\nimport isBetween from 'dayjs/plugin/isBetween';\r\nimport isSameOrAfter from 'dayjs/plugin/isSameOrAfter';\r\nimport isSameOrBefore from 'dayjs/plugin/isSameOrBefore';\r\nimport utc from 'dayjs/plugin/utc';\r\n\r\ndayjs.extend(utc);\r\ndayjs.extend(isBetween);\r\ndayjs.extend(isSameOrAfter);\r\ndayjs.extend(isSameOrBefore);\r\ndayjs.extend(customParseFormat);\r\n\r\nexport let isHamburgerMenuOpen = false;\r\nlet scrollPosition: number,\r\n isSafari = false,\r\n agentName: string | null;\r\n\r\n/**\r\n * Initialize the common page elements\r\n */\r\nexport function init() {\r\n initBackgroundResize();\r\n\r\n $('#header:not(.header-component-cp) #expand-navbar').on('click', () => {\r\n $('header').toggleClass('header-nav-visible');\r\n $('.navbar.navbar-default').toggleClass('header-nav-visible');\r\n $('.navbar-collapse.collapse').css('background-color', 'black');\r\n });\r\n\r\n const url = window.location.toString().toLowerCase();\r\n let isHighlight = false;\r\n\r\n // Add the highlight class to the menu entry representing the current page\r\n $('#header:not(.header-component-cp) #quote-menubar ul li a').each(function () {\r\n const anchor = this as HTMLAnchorElement;\r\n const val = url.indexOf(anchor.href.toLowerCase());\r\n if (val > -1) {\r\n $('li a.highlight').removeClass('highlight');\r\n $(anchor).addClass('highlight');\r\n isHighlight = true;\r\n }\r\n });\r\n\r\n // If we don't have a quote id in local storage, don't show the quote menu option.\r\n const localQuoteId = Storage.getQuoteId();\r\n if (!localQuoteId) {\r\n $('#header:not(.header-component-cp) #quoteMenuItem').hide();\r\n }\r\n\r\n //set navigator useragent in css\r\n const navigatorUserAgent = document.documentElement;\r\n if (!navigatorUserAgent) return;\r\n\r\n navigatorUserAgent.setAttribute('data-useragent', navigator.userAgent);\r\n navigatorUserAgent.setAttribute('data-platform', navigator.platform);\r\n\r\n const userAgent = navigator.userAgent.toLowerCase(); // detect the user agent\r\n const iosDevices = userAgent.match(/(iphone|ipod|ipad)/); //check if the devices are ios devices\r\n\r\n //The code to remove blinking cursor in IE\r\n if (userAgent.indexOf('msie') > -1 || userAgent.indexOf('trident/') > -1) {\r\n if ((<any>document).documentMode && (<any>document).documentMode < 12) {\r\n $(document).on('focus', ':input', event => {\r\n $(window).one('scroll', () => {\r\n (<any>event.target).blur();\r\n });\r\n });\r\n }\r\n }\r\n\r\n if (navigator.userAgent.indexOf('Safari') !== -1) {\r\n isSafari = true;\r\n }\r\n\r\n if (location.pathname === Constants.pages.Root) {\r\n let browserVersion = 0;\r\n\r\n if (iosDevices) {\r\n const idx = userAgent.lastIndexOf('applewebkit/');\r\n browserVersion = parseInt(userAgent.substring(idx + 12, idx + 15));\r\n } else if (isSafari) {\r\n const idx = userAgent.lastIndexOf('safari/');\r\n browserVersion = parseInt(userAgent.substring(idx + 7, idx + 10));\r\n }\r\n\r\n if (browserVersion < 600) {\r\n $('#home .form-quote #btnSubmit').css({\r\n margin: '0 1px 0 0',\r\n });\r\n }\r\n if (Storage.hasAuth()) {\r\n $('#header:not(.header-component-cp)').css({\r\n top: '0',\r\n });\r\n $('#header-without-top-navbar').hide();\r\n // removeAllSessionsExceptAgent();\r\n } else {\r\n $('#header-without-top-navbar').show();\r\n initFixedHeader();\r\n //removeAllSessions();\r\n }\r\n\r\n $(window).scroll(() => {\r\n const scrollTop = Common.asNumber($(window).scrollTop());\r\n scrollPosition = scrollTop;\r\n });\r\n } else {\r\n $('#header:not(.header-component-cp)').css({\r\n top: '0',\r\n });\r\n $('#header-without-top-navbar').hide();\r\n }\r\n\r\n adjustUiForAgent();\r\n\r\n $('.nav li a#quote').click(function () {\r\n const addressKey = Storage.getAddressKey();\r\n if (addressKey) {\r\n $(this).attr('href', '/quote/index/' + addressKey);\r\n }\r\n });\r\n\r\n // $('.nav li.agent-logout a').click(() => {\r\n $('.agent-logout a').click(() => {\r\n Common.logout().then(() => {\r\n Common.navigate(Constants.pages.Root);\r\n });\r\n });\r\n\r\n $('#bs-example-navbar-collapse-1').on('hidden.bs.collapse', () => {\r\n isHamburgerMenuOpen = false;\r\n $('#header:not(.header-component-cp) div:first').addClass('container');\r\n $('#header:not(.header-component-cp) .navbar-header').css('background', 'transparent');\r\n $('#header:not(.header-component-cp) .navbar-header div:first').removeClass('container');\r\n $('#header:not(.header-component-cp) .navbar-header div:last').css('position', 'static');\r\n unlockScrollPosition();\r\n\r\n if (location.pathname === '/' || location.pathname === '/home' || location.pathname.indexOf('/home/') !== -1) {\r\n const section = $('#headerLogo');\r\n const offset = section.offset();\r\n if (offset) {\r\n const windowOffset = offset.top + Common.asNumber(section.height()) - scrollPosition;\r\n if (windowOffset <= 0 || isNaN(windowOffset)) {\r\n showTopNavBar();\r\n } else {\r\n hideTopNavBar();\r\n }\r\n }\r\n }\r\n\r\n $('#swyfft-logo').css('visibility', 'visible');\r\n\r\n if (Storage.hasAuth()) {\r\n $('#user-details').css('visibility', 'visible');\r\n } else {\r\n $('#customer-care-call-details').css('visibility', 'visible');\r\n }\r\n });\r\n\r\n $('html, body').on('touchmove mousewheel', e => {\r\n if (isHamburgerMenuOpen) {\r\n //prevent native touch activity like scrolling\r\n e.preventDefault();\r\n }\r\n });\r\n\r\n $('#bs-example-navbar-collapse-1').on('show.bs.collapse', () => {\r\n isHamburgerMenuOpen = true;\r\n $('#header:not(.header-component-cp)').addClass('active-nav');\r\n $('#header:not(.header-component-cp) div:first').removeClass('container');\r\n $('#header:not(.header-component-cp) .navbar-header').css('background', '#000');\r\n $('#header:not(.header-component-cp) .navbar-header div:first').addClass('container');\r\n $('#header:not(.header-component-cp) .navbar-header div:last').css('position', 'relative');\r\n $('#swyfft-logo').css('visibility', 'collapse');\r\n if (Storage.hasAuth()) {\r\n $('#user-details').css('visibility', 'collapse');\r\n } else {\r\n $('#customer-care-call-details').css('visibility', 'collapse');\r\n }\r\n lockScrollPosition();\r\n });\r\n\r\n $(document)\r\n .on('focus', 'input', () => {\r\n if (iosDevices) {\r\n $('#header').css('position', 'absolute');\r\n if (Storage.hasAuth()) {\r\n $('#quote-menubar').css('position', 'absolute');\r\n }\r\n }\r\n })\r\n .on('blur', 'input', () => {\r\n if (iosDevices) {\r\n $('#header').css('position', 'fixed');\r\n if (Storage.hasAuth()) {\r\n $('#quote-menubar').css('position', 'fixed');\r\n }\r\n }\r\n });\r\n}\r\n\r\n//Prevents browser to load persisted data on back button click\r\nwindow.onpageshow = event => {\r\n if (event.persisted) {\r\n window.location.reload();\r\n }\r\n};\r\n\r\n// stretch background to fill blocks\r\nexport function initBackgroundResize() {\r\n jQuery('.bg-stretch').each(function () {\r\n imageStretcher.add({\r\n container: this,\r\n image: 'img',\r\n });\r\n });\r\n}\r\n\r\n//checks if the browser is safari or not in ipad\r\nconst isSafariIniPad = () => {\r\n if (navigator.userAgent.indexOf('Safari') !== -1 && navigator.userAgent.indexOf('CriOS') === -1) {\r\n return true;\r\n }\r\n return false;\r\n};\r\n\r\n//checks if ipad safari version 8\r\nconst isiPadSafariVersion8 = () => {\r\n const userAgent = navigator.userAgent;\r\n if (userAgent.indexOf('iPad') > -1 && userAgent.indexOf('Version/8.0') > -1 && isSafariIniPad()) {\r\n return true;\r\n }\r\n return false;\r\n};\r\n\r\n/*\r\n * Image Stretch module\r\n */\r\nconst imageStretcher = {\r\n getDimensions(data) {\r\n // calculate element coords to fit in mask\r\n const ratio = data.imageRatio || data.imageWidth / data.imageHeight;\r\n let slideWidth = data.maskWidth;\r\n let slideHeight = slideWidth / ratio;\r\n if (slideHeight < data.maskHeight) {\r\n slideHeight = data.maskHeight;\r\n slideWidth = slideHeight * ratio;\r\n }\r\n return {\r\n width: slideWidth,\r\n height: slideHeight,\r\n top: (data.maskHeight - slideHeight) / 2,\r\n left: (data.maskWidth - slideWidth) / 2,\r\n };\r\n },\r\n getRatio(image) {\r\n if (image.prop('naturalWidth')) {\r\n return image.prop('naturalWidth') / image.prop('naturalHeight');\r\n } else {\r\n const img = new Image();\r\n img.src = image.prop('src');\r\n return img.width / img.height;\r\n }\r\n },\r\n imageLoaded(image, callback) {\r\n const loadHandler = () => {\r\n callback.call(this);\r\n };\r\n if (image.prop('complete')) {\r\n loadHandler();\r\n } else {\r\n image.one('load', loadHandler);\r\n }\r\n },\r\n resizeHandler() {\r\n jQuery.each(this.imgList, (index, item) => {\r\n if (item.image.prop('complete')) {\r\n this.resizeImage(item.image, item.container);\r\n }\r\n });\r\n },\r\n resizeImage(image, container) {\r\n this.imageLoaded(image, function () {\r\n const styles = this.getDimensions({\r\n imageRatio: this.getRatio(image),\r\n maskWidth: container.width(),\r\n maskHeight: container.height(),\r\n });\r\n image.css({\r\n width: styles.width,\r\n height: styles.height,\r\n marginTop: styles.top,\r\n marginLeft: styles.left,\r\n });\r\n });\r\n },\r\n add(options) {\r\n const container = jQuery(options.container ? options.container : window);\r\n const image = typeof options.image === 'string' ? container.find(options.image) : jQuery(options.image); // resize image\r\n this.resizeImage(image, container);\r\n\r\n // add resize handler once if needed\r\n if (!this.win) {\r\n this.resizeHandler = jQuery.proxy(this.resizeHandler, this);\r\n this.imgList = [];\r\n this.win = jQuery(window);\r\n this.win.on('resize orientationchange', this.resizeHandler);\r\n }\r\n\r\n // store item in collection\r\n this.imgList.push({\r\n container: container,\r\n image: image,\r\n });\r\n },\r\n};\r\n\r\n/*\r\n * Window Height CSS rules\r\n */\r\nlet windowWidth: number, currentWindowHeight: number;\r\n\r\n(() => {\r\n let styleSheet: CSSStyleSheet;\r\n let styleRules: CSSRuleList;\r\n\r\n const getWindowHeight = () =>\r\n window.innerHeight || ((document.documentElement && document.documentElement.clientHeight) as number);\r\n const getWindowWidth = () =>\r\n window.innerWidth || ((document.documentElement && document.documentElement.clientWidth) as number);\r\n\r\n const getNewWidthHeightOfScreen = () => {\r\n windowWidth = getWindowWidth();\r\n (currentWindowHeight = getWindowHeight()), (styleRules = styleSheet.cssRules || styleSheet.rules);\r\n };\r\n\r\n const resizeHandler = () => {\r\n // handle changes in style rules\r\n if (isiPadSafariVersion8()) {\r\n if (windowWidth) {\r\n if (windowWidth !== getWindowWidth()) {\r\n getNewWidthHeightOfScreen();\r\n } else {\r\n styleRules = styleSheet.cssRules || styleSheet.rules;\r\n }\r\n } else {\r\n getNewWidthHeightOfScreen();\r\n }\r\n } else {\r\n (currentWindowHeight = getWindowHeight()), (styleRules = styleSheet.cssRules || styleSheet.rules);\r\n }\r\n\r\n jQuery.each(styleRules, (index, currentRule) => {\r\n const cssStyleRule = currentRule as CSSStyleRule;\r\n const currentProperty = cssStyleRule.selectorText.toLowerCase().replace('.win-', '').replace('-h', 'H');\r\n cssStyleRule.style[currentProperty] = currentWindowHeight + 'px';\r\n });\r\n };\r\n\r\n const createStyleTag = () => {\r\n // create style tag\r\n const styleTag = jQuery('<style>').appendTo('head');\r\n styleSheet = styleTag.prop('sheet') || styleTag.prop('styleSheet');\r\n\r\n // crossbrowser style handling\r\n const addCssRule = (selector, rules, index = 0) => {\r\n if (styleSheet.insertRule) {\r\n styleSheet.insertRule(selector + '{' + rules + '}', index);\r\n } else {\r\n styleSheet.addRule(selector, rules, index);\r\n }\r\n };\r\n\r\n // create style rules\r\n addCssRule('.win-min-height', 'min-height:0');\r\n addCssRule('.win-height', 'height:auto');\r\n addCssRule('.win-max-height', 'max-height:100%');\r\n resizeHandler();\r\n };\r\n\r\n createStyleTag();\r\n jQuery(window).on('resize orientationchange', resizeHandler);\r\n})();\r\n\r\nfunction initFixedHeader() {\r\n const $win = $(window);\r\n const $header = $('#header');\r\n const $headerLogo = $('#headerLogo');\r\n const activeClass = 'active-nav';\r\n\r\n function scrollHandler(e: any) {\r\n if (e.type !== 'scroll') {\r\n $header.css({\r\n top: $header.hasClass(activeClass) ? 0 : -Number($header.outerHeight(true)),\r\n });\r\n }\r\n checkState();\r\n }\r\n\r\n function checkState() {\r\n const scrollTop = Common.asNumber($win.scrollTop());\r\n const diff = 2;\r\n const offset = $headerLogo.offset();\r\n if (offset) {\r\n if (\r\n ($headerLogo.length &&\r\n scrollTop >= offset.top + Common.asNumber($headerLogo.height()) - diff &&\r\n !$header.hasClass(activeClass)) ||\r\n isHamburgerMenuOpen\r\n ) {\r\n $header.addClass(activeClass);\r\n $header.stop().animate({\r\n top: 0,\r\n });\r\n } else if (\r\n $headerLogo.length &&\r\n scrollTop < offset.top + Common.asNumber($headerLogo.height()) - diff &&\r\n $header.hasClass(activeClass)\r\n ) {\r\n $header.removeClass(activeClass);\r\n $header.stop().animate({\r\n top: -Number($header.outerHeight(true)),\r\n });\r\n }\r\n }\r\n }\r\n\r\n $win.on('scroll resize orientationchange', scrollHandler);\r\n}\r\n\r\n// lock scroll position\r\nfunction lockScrollPosition() {\r\n $('html').css('overflow', 'hidden');\r\n}\r\n\r\n// un-lock scroll position\r\nfunction unlockScrollPosition() {\r\n $('html').css('overflow', 'auto');\r\n}\r\n\r\n/**\r\n * Returns True if supplied param equates to HUB Agency.\r\n */\r\nexport function isQuoteFromHub(agencyName): boolean {\r\n return agencyName && agencyName.toLowerCase().indexOf(Constants.agencyNames.HubInternational) > -1;\r\n}\r\n\r\n/**\r\n * Adjust/Co-brand the page UI to deal with whether the user is a HUB Customer/Agent.\r\n */\r\nexport function loadHubUi() {\r\n Storage.hasAuth() ? adjustUiForHubAgent() : adjustUiForHubCustomer();\r\n}\r\n\r\nfunction adjustUiForHubAgent() {\r\n if (isQuoteFromHub(Storage.getAgencyFromLoginDetails())) {\r\n $('#hubLogoContainer').show();\r\n $('#quote-menubar').addClass('hub-quote-menubar-ly');\r\n }\r\n}\r\n\r\nfunction adjustUiForHubCustomer() {\r\n if (Storage.hasAuth()) return;\r\n $('#hubLogoContainer').show();\r\n $('#hubButtonContainer').show();\r\n}\r\n\r\n/**\r\n * Adjust the page UI to deal with whether the user is an agent or a consumer.\r\n */\r\nfunction adjustUiForAgent() {\r\n if (Storage.hasAuth()) {\r\n adjustUiForHubAgent();\r\n $('#customer-care-call-details').hide();\r\n $('#user-details').show();\r\n $('#quote-menubar').show();\r\n $('.agent-faq').show();\r\n $('.agent-login').hide();\r\n $('.agent-logout').show();\r\n agentName = Storage.getUserName();\r\n if (Common.isAdmin()) {\r\n $('.agent-page').show();\r\n } else {\r\n $('.agent-page').hide();\r\n }\r\n if (agentName) {\r\n $('#agentName').html(agentName);\r\n } else {\r\n const username = Storage.getUserName() || 'agent';\r\n $('#agentName').html(username);\r\n }\r\n } else {\r\n $('#quote-menubar').hide();\r\n $('#customer-care-call-details').show();\r\n $('#user-details').hide();\r\n $('.agent-page').hide();\r\n $('.agent-login').show();\r\n $('.agent-logout').hide();\r\n $('.agent-faq').hide();\r\n }\r\n}\r\n\r\nfunction hideTopNavBar() {\r\n $('#header:not(.header-component-cp)')\r\n .stop()\r\n .animate(\r\n {\r\n top: -Number($('#header:not(.header-component-cp)').outerHeight(true)),\r\n },\r\n 'fast'\r\n );\r\n}\r\n\r\nfunction showTopNavBar() {\r\n $('#header').stop().animate({\r\n top: 0,\r\n });\r\n}\r\n"],"names":["dayjs","utc","isBetween","isSameOrAfter","isSameOrBefore","customParseFormat","isHamburgerMenuOpen","scrollPosition","isSafari","agentName","init","initBackgroundResize","url","anchor","Storage.getQuoteId","navigatorUserAgent","userAgent","iosDevices","event","Constants.pages","browserVersion","idx","Storage.hasAuth","initFixedHeader","Common.asNumber","adjustUiForAgent","addressKey","Storage.getAddressKey","Common.logout","Common.navigate","unlockScrollPosition","section","offset","windowOffset","showTopNavBar","hideTopNavBar","e","lockScrollPosition","imageStretcher","isSafariIniPad","isiPadSafariVersion8","data","ratio","slideWidth","slideHeight","image","img","callback","loadHandler","index","item","container","styles","options","windowWidth","currentWindowHeight","styleSheet","styleRules","getWindowHeight","getWindowWidth","getNewWidthHeightOfScreen","resizeHandler","currentRule","cssStyleRule","currentProperty","styleTag","addCssRule","selector","rules","$win","$header","$headerLogo","activeClass","scrollHandler","checkState","scrollTop","diff","isQuoteFromHub","agencyName","Constants.agencyNames","loadHubUi","adjustUiForHubAgent","adjustUiForHubCustomer","Storage.getAgencyFromLoginDetails","Storage.getUserName","Common.isAdmin","username"],"mappings":"iYAUAA,EAAM,OAAOC,CAAG,EAChBD,EAAM,OAAOE,CAAS,EACtBF,EAAM,OAAOG,CAAa,EAC1BH,EAAM,OAAOI,CAAc,EAC3BJ,EAAM,OAAOK,CAAiB,EAEvB,IAAIC,EAAsB,GAC7BC,EACAC,EAAW,GACXC,EAKG,SAASC,IAAO,CACEC,EAAA,EAErB,EAAE,kDAAkD,EAAE,GAAG,QAAS,IAAM,CAClE,EAAA,QAAQ,EAAE,YAAY,oBAAoB,EAC1C,EAAA,wBAAwB,EAAE,YAAY,oBAAoB,EAC5D,EAAE,2BAA2B,EAAE,IAAI,mBAAoB,OAAO,CAAA,CACjE,EAED,MAAMC,EAAM,OAAO,SAAS,SAAA,EAAW,YAAY,EAIjD,EAAA,0DAA0D,EAAE,KAAK,UAAY,CAC3E,MAAMC,EAAS,KACHD,EAAI,QAAQC,EAAO,KAAK,aAAa,EACvC,KACJ,EAAA,gBAAgB,EAAE,YAAY,WAAW,EACzC,EAAAA,CAAM,EAAE,SAAS,WAAW,EAElC,CACH,EAGoBC,EAAmB,GAElC,EAAA,kDAAkD,EAAE,KAAK,EAI/D,MAAMC,EAAqB,SAAS,gBACpC,GAAI,CAACA,EAAoB,OAENA,EAAA,aAAa,iBAAkB,UAAU,SAAS,EAClDA,EAAA,aAAa,gBAAiB,UAAU,QAAQ,EAE7D,MAAAC,EAAY,UAAU,UAAU,YAAY,EAC5CC,EAAaD,EAAU,MAAM,oBAAoB,EAiBvD,IAdIA,EAAU,QAAQ,MAAM,EAAI,IAAMA,EAAU,QAAQ,UAAU,EAAI,KACxD,SAAU,cAAsB,SAAU,aAAe,IAC/D,EAAE,QAAQ,EAAE,GAAG,QAAS,SAAmBE,GAAA,CACvC,EAAE,MAAM,EAAE,IAAI,SAAU,IAAM,CACpBA,EAAM,OAAQ,KAAK,CAAA,CAC5B,CAAA,CACJ,EAIL,UAAU,UAAU,QAAQ,QAAQ,IAAM,KAC/BV,EAAA,IAGX,SAAS,WAAaW,EAAgB,KAAM,CAC5C,IAAIC,EAAiB,EAErB,GAAIH,EAAY,CACN,MAAAI,EAAML,EAAU,YAAY,cAAc,EAChDI,EAAiB,SAASJ,EAAU,UAAUK,EAAM,GAAIA,EAAM,EAAE,CAAC,UAC1Db,EAAU,CACX,MAAAa,EAAML,EAAU,YAAY,SAAS,EAC3CI,EAAiB,SAASJ,EAAU,UAAUK,EAAM,EAAGA,EAAM,EAAE,CAAC,CAAA,CAGhED,EAAiB,KACf,EAAA,8BAA8B,EAAE,IAAI,CAClC,OAAQ,WAAA,CACX,EAEDE,KACE,EAAA,mCAAmC,EAAE,IAAI,CACvC,IAAK,GAAA,CACR,EACC,EAAA,4BAA4B,EAAE,KAAK,IAGnC,EAAA,4BAA4B,EAAE,KAAK,EACrBC,EAAA,GAIlB,EAAA,MAAM,EAAE,OAAO,IAAM,CAEFhB,EADCiB,EAAgB,EAAE,MAAM,EAAE,WAAW,CACtC,CACpB,CAAA,MAEC,EAAA,mCAAmC,EAAE,IAAI,CACvC,IAAK,GAAA,CACR,EACC,EAAA,4BAA4B,EAAE,KAAK,EAGxBC,EAAA,EAEf,EAAA,iBAAiB,EAAE,MAAM,UAAY,CAC7B,MAAAC,EAAaC,EAAsB,EACrCD,GACA,EAAE,IAAI,EAAE,KAAK,OAAQ,gBAAkBA,CAAU,CACrD,CACH,EAGC,EAAA,iBAAiB,EAAE,MAAM,IAAM,CACtBE,EAAA,EAAS,KAAK,IAAM,CAChBC,EAASV,EAAgB,IAAI,CAAA,CACvC,CAAA,CACJ,EAED,EAAE,+BAA+B,EAAE,GAAG,qBAAsB,IAAM,CAQ1D,GAPkBb,EAAA,GACpB,EAAA,6CAA6C,EAAE,SAAS,WAAW,EACrE,EAAE,kDAAkD,EAAE,IAAI,aAAc,aAAa,EACnF,EAAA,4DAA4D,EAAE,YAAY,WAAW,EACvF,EAAE,2DAA2D,EAAE,IAAI,WAAY,QAAQ,EAClEwB,EAAA,EAEjB,SAAS,WAAa,KAAO,SAAS,WAAa,SAAW,SAAS,SAAS,QAAQ,QAAQ,IAAM,GAAI,CACpG,MAAAC,EAAU,EAAE,aAAa,EACzBC,EAASD,EAAQ,OAAO,EAC9B,GAAIC,EAAQ,CACF,MAAAC,EAAeD,EAAO,IAAMR,EAAgBO,EAAQ,OAAQ,CAAA,EAAIxB,EAClE0B,GAAgB,GAAK,MAAMA,CAAY,EACzBC,EAAA,EAEAC,EAAA,CAClB,CACJ,CAGJ,EAAE,cAAc,EAAE,IAAI,aAAc,SAAS,EAEzCb,IACA,EAAE,eAAe,EAAE,IAAI,aAAc,SAAS,EAE9C,EAAE,6BAA6B,EAAE,IAAI,aAAc,SAAS,CAChE,CACH,EAED,EAAE,YAAY,EAAE,GAAG,uBAA6Bc,GAAA,CACxC9B,GAEA8B,EAAE,eAAe,CACrB,CACH,EAED,EAAE,+BAA+B,EAAE,GAAG,mBAAoB,IAAM,CACtC9B,EAAA,GACpB,EAAA,mCAAmC,EAAE,SAAS,YAAY,EAC1D,EAAA,6CAA6C,EAAE,YAAY,WAAW,EACxE,EAAE,kDAAkD,EAAE,IAAI,aAAc,MAAM,EAC5E,EAAA,4DAA4D,EAAE,SAAS,WAAW,EACpF,EAAE,2DAA2D,EAAE,IAAI,WAAY,UAAU,EACzF,EAAE,cAAc,EAAE,IAAI,aAAc,UAAU,EAC1CgB,IACA,EAAE,eAAe,EAAE,IAAI,aAAc,UAAU,EAE/C,EAAE,6BAA6B,EAAE,IAAI,aAAc,UAAU,EAE9Ce,EAAA,CAAA,CACtB,EAED,EAAE,QAAQ,EACL,GAAG,QAAS,QAAS,IAAM,CACpBpB,IACA,EAAE,SAAS,EAAE,IAAI,WAAY,UAAU,EACnCK,KACA,EAAE,gBAAgB,EAAE,IAAI,WAAY,UAAU,EAGzD,CAAA,EACA,GAAG,OAAQ,QAAS,IAAM,CACnBL,IACA,EAAE,SAAS,EAAE,IAAI,WAAY,OAAO,EAChCK,KACA,EAAE,gBAAgB,EAAE,IAAI,WAAY,OAAO,EAEnD,CACH,CACT,CAGA,OAAO,WAAsBJ,GAAA,CACrBA,EAAM,WACN,OAAO,SAAS,OAAO,CAE/B,EAGO,SAASP,GAAuB,CAC5B,OAAA,aAAa,EAAE,KAAK,UAAY,CACnC2B,EAAe,IAAI,CACf,UAAW,KACX,MAAO,KAAA,CACV,CAAA,CACJ,CACL,CAGA,MAAMC,EAAiB,IACf,UAAU,UAAU,QAAQ,QAAQ,IAAM,IAAM,UAAU,UAAU,QAAQ,OAAO,IAAM,GAO3FC,EAAuB,IAAM,CAC/B,MAAMxB,EAAY,UAAU,UACxB,MAAA,GAAAA,EAAU,QAAQ,MAAM,EAAI,IAAMA,EAAU,QAAQ,aAAa,EAAI,IAAMuB,EAAA,EAInF,EAKMD,EAAiB,CACnB,cAAcG,EAAM,CAEhB,MAAMC,EAAQD,EAAK,YAAcA,EAAK,WAAaA,EAAK,YACxD,IAAIE,EAAaF,EAAK,UAClBG,EAAcD,EAAaD,EAC3B,OAAAE,EAAcH,EAAK,aACnBG,EAAcH,EAAK,WACnBE,EAAaC,EAAcF,GAExB,CACH,MAAOC,EACP,OAAQC,EACR,KAAMH,EAAK,WAAaG,GAAe,EACvC,MAAOH,EAAK,UAAYE,GAAc,CAC1C,CACJ,EACA,SAASE,EAAO,CACR,GAAAA,EAAM,KAAK,cAAc,EACzB,OAAOA,EAAM,KAAK,cAAc,EAAIA,EAAM,KAAK,eAAe,EAC3D,CACG,MAAAC,EAAM,IAAI,MACZ,OAAAA,EAAA,IAAMD,EAAM,KAAK,KAAK,EACnBC,EAAI,MAAQA,EAAI,MAAA,CAE/B,EACA,YAAYD,EAAOE,EAAU,CACzB,MAAMC,EAAc,IAAM,CACtBD,EAAS,KAAK,IAAI,CACtB,EACIF,EAAM,KAAK,UAAU,EACTG,EAAA,EAENH,EAAA,IAAI,OAAQG,CAAW,CAErC,EACA,eAAgB,CACZ,OAAO,KAAK,KAAK,QAAS,CAACC,EAAOC,IAAS,CACnCA,EAAK,MAAM,KAAK,UAAU,GAC1B,KAAK,YAAYA,EAAK,MAAOA,EAAK,SAAS,CAC/C,CACH,CACL,EACA,YAAYL,EAAOM,EAAW,CACrB,KAAA,YAAYN,EAAO,UAAY,CAC1B,MAAAO,EAAS,KAAK,cAAc,CAC9B,WAAY,KAAK,SAASP,CAAK,EAC/B,UAAWM,EAAU,MAAM,EAC3B,WAAYA,EAAU,OAAO,CAAA,CAChC,EACDN,EAAM,IAAI,CACN,MAAOO,EAAO,MACd,OAAQA,EAAO,OACf,UAAWA,EAAO,IAClB,WAAYA,EAAO,IAAA,CACtB,CAAA,CACJ,CACL,EACA,IAAIC,EAAS,CACT,MAAMF,EAAY,OAAOE,EAAQ,UAAYA,EAAQ,UAAY,MAAM,EACjER,EAAQ,OAAOQ,EAAQ,OAAU,SAAWF,EAAU,KAAKE,EAAQ,KAAK,EAAI,OAAOA,EAAQ,KAAK,EACjG,KAAA,YAAYR,EAAOM,CAAS,EAG5B,KAAK,MACN,KAAK,cAAgB,OAAO,MAAM,KAAK,cAAe,IAAI,EAC1D,KAAK,QAAU,CAAC,EACX,KAAA,IAAM,OAAO,MAAM,EACxB,KAAK,IAAI,GAAG,2BAA4B,KAAK,aAAa,GAI9D,KAAK,QAAQ,KAAK,CACd,UAAAA,EACA,MAAAN,CAAA,CACH,CAAA,CAET,EAKA,IAAIS,EAAqBC,GAExB,IAAM,CACC,IAAAC,EACAC,EAEJ,MAAMC,EAAkB,IACpB,OAAO,aAAiB,SAAS,iBAAmB,SAAS,gBAAgB,aAC3EC,EAAiB,IACnB,OAAO,YAAgB,SAAS,iBAAmB,SAAS,gBAAgB,YAE1EC,EAA4B,IAAM,CACpCN,EAAcK,EAAe,EAC5BJ,EAAsBG,EAAgB,EAAKD,EAAaD,EAAW,UAAYA,EAAW,KAC/F,EAEMK,EAAgB,IAAM,CAEpBrB,IACIc,EACIA,IAAgBK,IACUC,EAAA,EAEbH,EAAAD,EAAW,UAAYA,EAAW,MAGzBI,EAAA,GAG7BL,EAAsBG,EAAgB,EAAKD,EAAaD,EAAW,UAAYA,EAAW,OAG/F,OAAO,KAAKC,EAAY,CAACR,EAAOa,IAAgB,CAC5C,MAAMC,EAAeD,EACfE,EAAkBD,EAAa,aAAa,YAAY,EAAE,QAAQ,QAAS,EAAE,EAAE,QAAQ,KAAM,GAAG,EACzFA,EAAA,MAAMC,CAAe,EAAIT,EAAsB,IAAA,CAC/D,CACL,GAEuB,IAAM,CAEzB,MAAMU,EAAW,OAAO,SAAS,EAAE,SAAS,MAAM,EAClDT,EAAaS,EAAS,KAAK,OAAO,GAAKA,EAAS,KAAK,YAAY,EAGjE,MAAMC,EAAa,CAACC,EAAUC,EAAOnB,EAAQ,IAAM,CAC3CO,EAAW,WACXA,EAAW,WAAWW,EAAW,IAAMC,EAAQ,IAAKnB,CAAK,EAE9CO,EAAA,QAAQW,EAAUC,EAAOnB,CAAK,CAEjD,EAGAiB,EAAW,kBAAmB,cAAc,EAC5CA,EAAW,cAAe,aAAa,EACvCA,EAAW,kBAAmB,iBAAiB,EACjCL,EAAA,CAClB,GAEe,EACf,OAAO,MAAM,EAAE,GAAG,2BAA4BA,CAAa,CAC/D,GAAG,EAEH,SAAStC,GAAkB,CACjB,MAAA8C,EAAO,EAAE,MAAM,EACfC,EAAU,EAAE,SAAS,EACrBC,EAAc,EAAE,aAAa,EAC7BC,EAAc,aAEpB,SAASC,EAAcrC,EAAQ,CACvBA,EAAE,OAAS,UACXkC,EAAQ,IAAI,CACR,IAAKA,EAAQ,SAASE,CAAW,EAAI,EAAI,CAAC,OAAOF,EAAQ,YAAY,EAAI,CAAC,CAAA,CAC7E,EAEMI,EAAA,CAAA,CAGf,SAASA,GAAa,CAClB,MAAMC,EAAYnD,EAAgB6C,EAAK,WAAW,EAC5CO,EAAO,EACP5C,EAASuC,EAAY,OAAO,EAC9BvC,IAEKuC,EAAY,QACTI,GAAa3C,EAAO,IAAMR,EAAgB+C,EAAY,OAAO,CAAC,EAAIK,GAClE,CAACN,EAAQ,SAASE,CAAW,GACjClE,GAEAgE,EAAQ,SAASE,CAAW,EACpBF,EAAA,OAAO,QAAQ,CACnB,IAAK,CAAA,CACR,GAEDC,EAAY,QACZI,EAAY3C,EAAO,IAAMR,EAAgB+C,EAAY,OAAA,CAAQ,EAAIK,GACjEN,EAAQ,SAASE,CAAW,IAE5BF,EAAQ,YAAYE,CAAW,EACvBF,EAAA,OAAO,QAAQ,CACnB,IAAK,CAAC,OAAOA,EAAQ,YAAY,EAAI,CAAC,CAAA,CACzC,GAET,CAGCD,EAAA,GAAG,kCAAmCI,CAAa,CAC5D,CAGA,SAASpC,GAAqB,CAC1B,EAAE,MAAM,EAAE,IAAI,WAAY,QAAQ,CACtC,CAGA,SAASP,GAAuB,CAC5B,EAAE,MAAM,EAAE,IAAI,WAAY,MAAM,CACpC,CAKO,SAAS+C,EAAeC,EAAqB,CACzC,OAAAA,GAAcA,EAAW,YAAY,EAAE,QAAQC,EAAsB,gBAAgB,EAAI,EACpG,CAKO,SAASC,IAAY,CACxB1D,EAAgB,EAAI2D,EAAoB,EAAIC,EAAuB,CACvE,CAEA,SAASD,GAAsB,CACvBJ,EAAeM,EAAkC,CAAC,IAChD,EAAA,mBAAmB,EAAE,KAAK,EAC1B,EAAA,gBAAgB,EAAE,SAAS,sBAAsB,EAE3D,CAEA,SAASD,GAAyB,CAC1B5D,MACF,EAAA,mBAAmB,EAAE,KAAK,EAC1B,EAAA,qBAAqB,EAAE,KAAK,EAClC,CAKA,SAASG,GAAmB,CACpB,GAAAH,IAcA,GAboB2D,EAAA,EAClB,EAAA,6BAA6B,EAAE,KAAK,EACpC,EAAA,eAAe,EAAE,KAAK,EACtB,EAAA,gBAAgB,EAAE,KAAK,EACvB,EAAA,YAAY,EAAE,KAAK,EACnB,EAAA,cAAc,EAAE,KAAK,EACrB,EAAA,eAAe,EAAE,KAAK,EACxBxE,EAAY2E,EAAoB,EAC5BC,IACE,EAAA,aAAa,EAAE,KAAK,EAEpB,EAAA,aAAa,EAAE,KAAK,EAEtB5E,EACE,EAAA,YAAY,EAAE,KAAKA,CAAS,MAC3B,CACG,MAAA6E,EAAWF,EAAQ,GAAiB,QACxC,EAAA,YAAY,EAAE,KAAKE,CAAQ,CAAA,MAG/B,EAAA,gBAAgB,EAAE,KAAK,EACvB,EAAA,6BAA6B,EAAE,KAAK,EACpC,EAAA,eAAe,EAAE,KAAK,EACtB,EAAA,aAAa,EAAE,KAAK,EACpB,EAAA,cAAc,EAAE,KAAK,EACrB,EAAA,eAAe,EAAE,KAAK,EACtB,EAAA,YAAY,EAAE,KAAK,CAE7B,CAEA,SAASnD,GAAgB,CACnB,EAAA,mCAAmC,EAChC,KAAA,EACA,QACG,CACI,IAAK,CAAC,OAAO,EAAE,mCAAmC,EAAE,YAAY,EAAI,CAAC,CACzE,EACA,MACJ,CACR,CAEA,SAASD,GAAgB,CACrB,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,CACxB,IAAK,CAAA,CACR,CACL"}