{"version":3,"sources":["webpack:///./node_modules/@tarekraafat/autocomplete.js/dist/autoComplete.min.js","webpack:///./node_modules/ui-core/widgets/quick-search/js/quick-search.ts","webpack:///./node_modules/ui-core/utility/js/no-focusable-svg.js","webpack:///./node_modules/ui-core/utility/js/observe-dom.js","webpack:///./node_modules/ui-core/plugins/cookies/js/cookies.js","webpack:///./node_modules/ui-core/basic/lists/js/list.js","webpack:///./node_modules/ui-core/components/modal/js/modal.js","webpack:///./node_modules/ui-core/components/alert-popup/js/alert-popup.js","webpack:///./node_modules/ui-core/components/accordion/js/accordion.js","webpack:///./node_modules/ui-core/plugins/transplant/js/transplant.js","webpack:///./node_modules/ui-core/components/drop-block/js/drop-block.js","webpack:///./node_modules/ui-core/components/back-to-top/js/back-to-top.js","webpack:///./node_modules/ui-theme/js/widgets/_quick-search.ts","webpack:///./node_modules/ui-core/widgets/ad-placeholder/js/ad-placeholder.js","webpack:///./node_modules/ui-core/widgets/multi-search/js/multi-search.js","webpack:///./node_modules/ui-core/widgets/raa/js/raa.js","webpack:///./node_modules/ui-core/plugins/truncate/js/truncate.js","webpack:///./node_modules/ui-core/plugins/truncate/js/init.js","webpack:///./node_modules/ui-core/components/truncater/js/truncater.js","webpack:///./node_modules/ui-core/widgets/table-of-content/js/table-of-content.js","webpack:///./node_modules/ui-theme/js/components/slide.js","webpack:///./node_modules/ui-core/plugins/slide/js/slide.js","webpack:///./node_modules/ui-core/widgets/menu/js/responsive-menu.js","webpack:///./node_modules/ui-core/plugins/stickybits/js/stickybits.es.js","webpack:///./node_modules/ui-theme/js/utility/_sticky.js","webpack:///./node_modules/ui-core/plugins/modal/js/modal.js","webpack:///./node_modules/ui-theme/js/widgets/_table-of-content.js","webpack:///./node_modules/ui-core/widgets/ip-ranges/js/ip-ranges.ts","webpack:///./node_modules/@atypon/ui-bundle-generator/.generated/groups/_truncate.js","webpack:///./node_modules/@atypon/ui-bundle-generator/.generated/groups/_mobile-menu.js","webpack:///./node_modules/@atypon/ui-bundle-generator/.generated/lazy-imports.js","webpack:///./node_modules/@babel/runtime/helpers/defineProperty.js"],"names":["t","e","n","Object","keys","getOwnPropertySymbols","r","filter","getOwnPropertyDescriptor","enumerable","push","apply","arguments","length","i","forEach","getOwnPropertyDescriptors","defineProperties","defineProperty","Symbol","_typeof","iterator","constructor","prototype","value","configurable","writable","Array","isArray","s","from","o","TypeError","toString","call","slice","name","test","u","document","querySelector","a","createElement","append","insertAdjacentElement","parentNode","insertBefore","getAttribute","focus","setAttribute","c","String","toLowerCase","normalize","replace","l","innerHTML","class","outerHTML","f","input","dispatchEvent","CustomEvent","bubbles","detail","feedback","cancelable","p","mode","diacritics","highlight","map","join","d","indexOf","substring","Promise","data","cache","store","src","then","h","searchEngine","resultItem","match","key","done","next","resultsList","maxResults","query","matches","results","m","b","y","v","selection","index","g","isOpen","wrapper","list","removeAttribute","w","O","getElementsByTagName","tag","selected","split","cursor","classList","remove","add","id","scrollTop","offsetTop","clientHeight","A","k","L","event","j","this","HTMLInputElement","HTMLTextAreaElement","trigger","threshold","Error","noResults","DocumentFragment","concat","role","inside","element","S","E","placeHolder","placeholder","around","dest","destination","position","hidden","T","events","debounce","clearTimeout","setTimeout","keydown","keyCode","preventDefault","submit","tabSelect","blur","mousedown","click","toUpperCase","querySelectorAll","target","closest","nodeName","addEventListener","x","init","start","unInit","removeChild","removeEventListener","open","close","goTo","previous","select","search","options","instances","selector","exports","module","define","autocompleteResultItem","citationSearchJournalField","citationSearch","hideAutoComplete","qsAutocomplete","qsForms","qsDropdowns","qsHeaderWrapper","qsSeriesKey","qsItems","autocompleteSelectedResultItem","citationSearchDoiField","citationSubmit","inputGroup","journalSearchHideAutocompleteWrapper","autoCompleteWrapper","el","searchType","seriesKey","_autoCompleteOptions","domUtils","getElement","activeDropdownJournal","elements","selectors","hs","pts","ptgs","ptfs","ts","cs","pt","initialize","_URLParameters","URLParameters","setAutoCompleteOptions","setActiveJournal","isAutocompleteOn","browserUtils","isIE","initAutocomplete","addEventListeners","getElements","isSelectOnly","elementRenderer","item","ele","autoCompleteOptions","href","url","className","paramFormatted","innerText","appendChild","bind","record","label","getConfigs","quickSearchElm","autoCompleteObj","buildFetchURL","fetch","json","resultListConfig","defaultConfigs","handleAutoCompleteOptions","containsClasses","initAutoCompleteInstance","configs","onSelection","render","idName","Math","ceil","random","resultListDestination","parentElement","autcompleteInstances","Map","QuickSearchElm","contains","set","onKeyDown","form","onFormSubmit","handleDropdownCollapse","registerCitationSearchEvents","autocompleteAnnouncer","announcerContainer","autocompleteLists","observer","MutationObserver","mutationsList","mutation","children","observe","childList","window","location","submitForm","Event","submitWithoutChoosingValue","selectedItemId","reserveSearchInputOnJournalChange","activeJournalForm","changeSubmitButtonState","onCitationSearchDoiField","hasValue","dataset","journalCitationInputs","toggleClasses","disabled","allEmpty","validator","isNotEmpty","parameters","entries","reduce","acc","prop","term","trim","parseInt","autoCompleteMaxWords","autoCompleteMaxChars","encodeURIComponent","QuickSearch","Selectors","Elements","ClassList","Texts","HTMLElement","UX","noFocusableSVG","svgs","observeDOM","WebKitMutationObserver","eventListenerSupported","obj","withMutations","observerOptions","callback","obs","mutations","addedNodes","removedNodes","subtree","attributes","cookies","getItem","sKey","decodeURIComponent","cookie","RegExp","setItem","sValue","vEnd","sPath","sDomain","bSecure","sExpires","Number","Infinity","Date","toUTCString","removeItem","hasItem","aKeys","nLen","nIdx","$body","$","expandIcon","collapseIcon","on","build","control","toggleList","each","find","hide","elem","$toggle","$wrapper","$target","toggle","defineToggleIcons","toggleClass","hasClass","attr","closeList","removeClass","addClass","$expandableList","undefined","$window","modal","revers","lastItem","items","$close","accessibilityEnabled","accessibility","$content","after","show","removeAttr","is","focusCycle","controller","check","$autofocus","tab","off","tabRevers","which","alertPopup","config","$actions","$approve","$cancel","$url","controls","_this","action","onClick","currentTarget","redirect","isMobile","accordion","$elements","$tabbedElements","$controllers","$tabbedControllers","isStickyBody","vPort","$responsiveElements","accVport","$responsiveTarget","collapseTabs","collapseAccordion","defaultCollapsed","hideAllBoolean","openedAccordion","hideDropBlock","initResponsive","logic","additionalControls","stopImmediatePropagation","dropBlock","$this","single","preventAccordionBehavior","tabbed","all","hideAll","parentAccordion","parent","collapseTabsByDefault","getAccordionContent","additionalAjaxSuccess","$elem","getCustomAjaxUrl","buildAjaxUrl","ajaxUrl","widgetId","dropzoneId","$parentTab","ajax","success","replaceWith","error","state","$accordionContent","contentTarget","slideToggle","height","accordionExpandedSingle","checkExpandAll","$parent","$opened","slideUp","extraCollapseAccordionCheck","slideDown","expanded","accordionExpandedTabbed","text","$lazy","$expandElem","setViewports","parents","transplant","$element","$order","$cloneData","$clonedContainer","$direction","$remove","$targetClass","$classNames","_transplant$$target$f","clone","array","order","cleanDuplicateID","clonedItems","sort","html","$source","targetFor","$controler","clonedElement","ariaOwns","$targets","$controller","$parents","escape","$container","switchVal","$section","initialized","direction","pop","stopPropagation","isDataSlideTarget","disableOnMobile","dimensions","icon","first","loi","recalculate","additionalOnShow","back","$parentSection","additionalOnHide","$nested","current","ifContaind","wrapInner","nHeight","outerHeight","pOffset","offset","pLeft","left","nWidth","innerWidth","styles","container_offset","container_base","width","parent_base","top","right","css","switch","temp","backToTop","footerBackToTop","animate","body","isfooterVisible","docViewBottom","adplaceholder","elemToToggle","$multi_search","getWidgetId","widgetEl","multiSearch","dropdown","widgetID","topic","tagLabel","tagId","params","multiSearchAction","lazyload","not","truncate","lines","type","lazyLoad","getPbContext","pbContext","dataType","async","console","log","ready","toggleQuickSearch","val","loadInstitutionPage","selectDom","methods","seeMoreLink","link","seeMore","settings","ellipsisChar","seeMoreText","seeMoreTextHidden","seeMoreIcon","seeMoreHtml","seeMoreIconMobile","isSliding","mobileTarget","parentTagName","ellipsis","isLink","removeElements","containerEl","$lastRemoved","$seeMore","that","maxHeight","parseFloat","get","nodeType","Node","ELEMENT_NODE","contents","last","onComplete","$lastChild","textContent","min","max","mid","floor","substr","midWordEnabled","lastIndexOf","truncateText","seeMoreMiddleLink","removeListItemsMiddle","$removedItems","lineHeight","removedCount","visible","removeItems","indexToRemove","ignoreCountList","showRemovedCount","fn","removedCountMarkup","insertAfter","removeListItemsEnd","removeListItemsBetweenFirstAndLast","firstItem","latsItem","$items","eq","removeListItemsBeforeLast","$seeMoreLink","$lastXItems","lastItemsCount","TEXT_NODE","prepend","$lastXItemsContent","truncateList","seeLessLink","seeLess","lessLinkEllipsis","seeLessText","seeLessIcon","seeLessHtml","addEventHandlers","originalHeight","checkHeight","allowedKeys","allowTabToReadMore","readMoreWithSpacebar","animation","evt","readMore","truncatedLength","lessLink","autoHeight","$evtTarget","readLess","tabId","restoreContent","truncateStart","targetViewport","tagName","addResponsiveHandlers","targetViewportOn","targetViewportOff","prevVPort","firstInit","dataAttrOptions","hiddenTextHTML","extend","defaults","destroy","method","count","jQuery","truncateInit","truncater","tocJs","$loa","$toSection","section","appendTo","additionalControl","err","_ux3lvl_slide_init","_ux3lvl_slide_onShow","_ux3lvl_slide_onHide","_ux3lvl_slide_onOff","slide","$back","responsive","elementvPort","$slide","$contents","$slideinfo","prev","nested","multi","activeSlide","oldInfo","wait","backLabel","isQueue","isRTL","displaySlideHtmlToPage","customViewPorts","viewPort","additionalInitialization","facetDateChart","utils","$main","additionalResponsive","addTransition","empty","removeTransition","setBackLabel","_e$currentTarget","jcf","openingEvent","isDefaultPrevented","popupType","additionalShow","_nestSlide","clonedDiv","destroyJcf","rebuildJcf","googletag","pubads","refresh","$coolBar","openEvent","_showSlide","slidePill","$slidedDiv","translate","one","additionalShowSlide","isInsideSlide","closingEvent","originalTarget","isLoi","beforeReturnSlideContent","$dropBlockHolder","_returnDataSlide","splice","_hideSlide","additionalHide","closeEvent","updateTarget","returnDataSlideHere","$returnDataSlideHere","additionalOff","$el","reponsiveMenu","$menuContainer","leftSectionWidth","rightSectionWidth","maxMenuItemWidth","$moreDropsown","$menu","$menuWrapper","modifyMenu","before","availableMenuWidth","menuWidth","$lastMenuItem","$moreItems","$firstMoreItem","Stickybits","stickyOnEvent","createEvent","stickyOffEvent","version","userAgent","navigator","props","customStickyChangeNumber","noStyles","stickyBitStickyOffset","parentClass","scrollEl","stickyClass","stuckClass","stickyChangeClass","useStickyClasses","useFixed","useGetBoundingClientRect","verticalPosition","positionVal","definePosition","_this$props","verticalPositionStyle","positionStyle","els","style","addInstance","initCustomEvent","_proto","stickyProp","prefix","head","isWin","se","getClosestParent","computeScrollOffsets","stateContainer","manageState","getTopPosition","getBoundingClientRect","pageYOffset","documentElement","topPosition","offsetParent","it","isCustom","isTop","scrollElOffset","stickyStart","stickyChangeOffset","offsetHeight","parentBottom","stickyChange","stickyStop","innerHeight","cArray","rItem","change","stop","stl","ns","pv","sticky","stuck","vp","rAFStub","rAFDummy","rAF","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","msRequestAnimationFrame","tC","scroll","scrollY","isSticky","isStuck","bottom","isStickyChange","update","updatedProps","instance","updatedProp","removeInstance","cleanup","stickybits","stickyNodes","stickyTargets","setHeaderHeight","setSticky","setProperty","resize","node","nodeWinOffset","outerWidth","NAME","EVENT_KEY","JQUERY_NO_CONFLICT","Default","backdrop","keyboard","DefaultType","HIDE","HIDE_PREVENTED","HIDDEN","SHOW","SHOWN","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","CLICK_DATA_API","ClassName","Selector","Modal","_classCallCheck","_config","_getConfig","_element","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_isTransitioning","_scrollbarWidth","_createClass","relatedTarget","showEvent","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","_this2","hideEvent","transition","transitionDuration","Util","getTransitionDurationFromElement","TRANSITION_END","_hideModal","emulateTransitionEnd","dispose","htmlElement","removeData","handleUpdate","_objectSpread","typeCheckConfig","_triggerBackdropTransition","_this3","hideEventPrevented","defaultPrevented","modalTransitionDuration","_this4","modalBody","display","reflow","_enforceFocus","shownEvent","transitionComplete","_this5","has","_this6","_this7","_this8","_resetAdjustments","_resetScrollbar","_removeBackdrop","_this9","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","paddingLeft","paddingRight","rect","_getScrollbarWidth","_this10","fixedContent","stickyContent","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","margin","scrollDiv","scrollbarWidth","clientWidth","_jQueryInterface","_this11","getSelectorFromElement","Constructor","noConflict","tocTranslation","addRangeFields","addRangeSubmitButtons","updateRangesCheckboxes","updateRangesSubmitButtons","field","handleAddRangeFieldChange","checkbox","handleUpdateRangeFieldChange","anyIsEmpty","some","setSubmitButtonsDisable","anyIsChecked","checked","isDisabled","button","ipRanges","main","$truncater","$tocJs","getElementsByClassName","$reponsiveMenu","menu","$list","$modal","$alertPopup","$accordion","$transplant","$dropBlock","$backToTop","$ipRanges","$quickSearch","$quickSearchInputs","$adplaceholder","$multiSearch","quickSearch","quickSearchInputs","truncateMain","mobileMenuMain","toPropertyKey","_defineProperty","__esModule"],"mappings":"sFAAMA,E,OAASA,EAAE,SAAFA,IAAa,aAAa,SAASC,EAAEA,EAAED,GAAG,IAAIE,EAAEC,OAAOC,KAAKH,GAAG,GAAGE,OAAOE,sBAAsB,CAAC,IAAIC,EAAEH,OAAOE,sBAAsBJ,GAAGD,IAAIM,EAAEA,EAAEC,QAAQ,SAASP,GAAG,OAAOG,OAAOK,yBAAyBP,EAAED,GAAGS,eAAeP,EAAEQ,KAAKC,MAAMT,EAAEI,GAAG,OAAOJ,EAAE,SAASF,EAAEA,GAAG,IAAI,IAAIE,EAAE,EAAEA,EAAEU,UAAUC,OAAOX,IAAI,CAAC,IAAIY,EAAE,MAAMF,UAAUV,GAAGU,UAAUV,GAAG,GAAGA,EAAE,EAAED,EAAEE,OAAOW,IAAG,GAAIC,SAAS,SAASd,GAAGK,EAAEN,EAAEC,EAAEa,EAAEb,OAAOE,OAAOa,0BAA0Bb,OAAOc,iBAAiBjB,EAAEG,OAAOa,0BAA0BF,IAAIb,EAAEE,OAAOW,IAAIC,SAAS,SAASd,GAAGE,OAAOe,eAAelB,EAAEC,EAAEE,OAAOK,yBAAyBM,EAAEb,OAAO,OAAOD,EAAE,SAASE,EAAED,GAAG,OAAOC,EAAE,mBAAmBiB,QAAQ,UAAQC,EAASD,OAAOE,UAAS,SAASpB,GAAG,OAAAmB,EAAcnB,IAAG,SAASA,GAAG,OAAOA,GAAG,mBAAmBkB,QAAQlB,EAAEqB,cAAcH,QAAQlB,IAAIkB,OAAOI,UAAU,SAAQH,EAAQnB,KAAKA,GAAG,SAASK,EAAEL,EAAED,EAAEE,GAAG,OAAOF,KAAKC,EAAEE,OAAOe,eAAejB,EAAED,EAAE,CAACwB,MAAMtB,EAAEO,YAAW,EAAGgB,cAAa,EAAGC,UAAS,IAAKzB,EAAED,GAAGE,EAAED,EAAE,SAASa,EAAEb,GAAG,OAAO,SAASA,GAAG,GAAG0B,MAAMC,QAAQ3B,GAAG,OAAO4B,EAAE5B,GAAzC,CAA6CA,IAAI,SAASA,GAAG,GAAG,oBAAoBkB,QAAQ,MAAMlB,EAAEkB,OAAOE,WAAW,MAAMpB,EAAE,cAAc,OAAO0B,MAAMG,KAAK7B,GAA7G,CAAiHA,IAAI8B,EAAE9B,IAAI,WAAW,MAAM,IAAI+B,UAAU,wIAA/B,GAA0K,SAASD,EAAE9B,EAAED,GAAG,GAAGC,EAAE,CAAC,GAAG,iBAAiBA,EAAE,OAAO4B,EAAE5B,EAAED,GAAG,IAAIE,EAAEC,OAAOoB,UAAUU,SAASC,KAAKjC,GAAGkC,MAAM,GAAG,GAAG,MAAM,WAAWjC,GAAGD,EAAEqB,cAAcpB,EAAED,EAAEqB,YAAYc,MAAM,QAAQlC,GAAG,QAAQA,EAAEyB,MAAMG,KAAK7B,GAAG,cAAcC,GAAG,2CAA2CmC,KAAKnC,GAAG2B,EAAE5B,EAAED,QAAG,GAAQ,SAAS6B,EAAE5B,EAAED,IAAI,MAAMA,GAAGA,EAAEC,EAAEY,UAAUb,EAAEC,EAAEY,QAAQ,IAAI,IAAIX,EAAE,EAAEI,EAAE,IAAIqB,MAAM3B,GAAGE,EAAEF,EAAEE,IAAII,EAAEJ,GAAGD,EAAEC,GAAG,OAAOI,EAAE,IAAIgC,EAAE,SAAFA,EAAWrC,GAAG,MAAM,iBAAiBA,EAAEsC,SAASC,cAAcvC,GAAGA,KAAKwC,EAAE,SAAFA,EAAWxC,EAAED,GAAG,IAAIE,EAAE,iBAAiBD,EAAEsC,SAASG,cAAczC,GAAGA,EAAE,IAAI,IAAIK,KAAKN,EAAE,CAAC,IAAIc,EAAEd,EAAEM,GAAG,GAAG,WAAWA,EAAEQ,EAAE6B,OAAOzC,QAAQ,GAAG,SAASI,EAAEgC,EAAExB,EAAE,IAAI8B,sBAAsB9B,EAAE,GAAGZ,QAAQ,GAAG,WAAWI,EAAE,CAAC,IAAIyB,EAAEjB,EAAEiB,EAAEc,WAAWC,aAAa5C,EAAE6B,GAAG7B,EAAEyC,OAAOZ,GAAG,MAAMA,EAAEgB,aAAa,cAAchB,EAAEiB,aAAa1C,KAAKJ,EAAEA,EAAEI,GAAGQ,EAAEZ,EAAE+C,aAAa3C,EAAEQ,GAAG,OAAOZ,GAAGgD,EAAE,SAAFA,EAAWjD,EAAED,GAAG,OAAOC,EAAEkD,OAAOlD,GAAGmD,cAAcpD,EAAEC,EAAEoD,UAAU,OAAOC,QAAQ,mBAAmB,IAAID,UAAU,OAAOpD,GAAGsD,EAAE,SAAFA,EAAWtD,EAAEC,GAAG,OAAOuC,EAAE,OAAOzC,EAAE,CAACwD,UAAUvD,GAAG,iBAAiBC,GAAG,CAACuD,MAAMvD,KAAKwD,WAAWC,EAAE,SAAFA,EAAW1D,EAAED,GAAGA,EAAE4D,MAAMC,cAAc,IAAIC,YAAY7D,EAAE,CAAC8D,SAAQ,EAAGC,OAAOhE,EAAEiE,SAASC,YAAW,MAAOC,EAAE,SAAFA,EAAWlE,EAAED,EAAEE,GAAG,IAAII,EAAEJ,GAAG,GAAGY,EAAER,EAAE8D,KAAKrC,EAAEzB,EAAE+D,WAAWxC,EAAEvB,EAAEgE,UAAUhC,EAAEY,EAAElD,EAAE+B,GAAG,GAAG/B,EAAEmD,OAAOnD,GAAGC,EAAEiD,EAAEjD,EAAE8B,GAAG,UAAUjB,EAAE,CAAC,IAAI2B,GAAGxC,EAAEA,EAAEqD,QAAQ,KAAK,KAAKzC,OAAO8C,EAAE,EAAEQ,EAAExC,MAAMG,KAAK9B,GAAGuE,KAAK,SAASvE,EAAEE,GAAG,OAAOyD,EAAElB,GAAGH,EAAEpC,KAAKD,EAAE0D,KAAK3D,EAAE6B,EAAE0B,EAAEvD,EAAE6B,GAAG7B,EAAE2D,KAAK3D,KAAKwE,KAAK,IAAI,GAAGb,IAAIlB,EAAE,OAAO0B,MAAM,CAAC,IAAIM,EAAEnC,EAAEoC,QAAQzE,GAAG,IAAIwE,EAAE,OAAOxE,EAAED,EAAE2E,UAAUF,EAAEA,EAAExE,EAAEY,QAAUgB,EAAE7B,EAAEsD,QAAQrD,EAAEsD,EAAEtD,EAAE4B,IAAI7B,IAAIyE,EAAE,SAAFA,EAAWxE,EAAED,GAAG,OAAO,IAAI4E,SAAS,SAAS1E,EAAEI,GAAG,IAAIQ,EAAE,OAAOA,EAAEb,EAAE4E,MAAMC,OAAOhE,EAAEiE,MAAM7E,IAAI,IAAI0E,SAAS,SAAS3E,EAAEC,GAAG,MAAM,mBAAmBY,EAAEkE,IAAIlE,EAAEkE,IAAIhF,GAAGiF,KAAKhF,EAAEC,GAAGD,EAAEa,EAAEkE,QAAQC,MAAM,SAASjF,GAAG,IAAI,OAAOC,EAAEgE,SAASnD,EAAEiE,MAAM/E,EAAE2D,EAAE,WAAW1D,GAAGC,IAAI,MAAMD,GAAG,OAAOK,EAAEL,MAAMK,OAAO4E,EAAE,SAAFA,EAAWjF,EAAED,GAAG,IAAIE,EAAEF,EAAE6E,KAAKvE,EAAEN,EAAEmF,aAAarE,EAAE,GAAGZ,EAAE6E,MAAMhE,SAAS,SAASc,EAAES,GAAG,IAAIG,EAAE,SAAFA,EAAWvC,GAAG,IAAI6B,EAAE7B,EAAE2B,EAAE3B,GAAG2B,EAAES,EAAE,mBAAmBhC,EAAEA,EAAEL,EAAE8B,GAAGoC,EAAElE,EAAE8B,EAAE,CAACqC,KAAK9D,EAAE+D,WAAWrE,EAAEqE,WAAWC,UAAUtE,EAAEoF,WAAWd,YAAY,GAAGhC,EAAE,CAAC,IAAIG,EAAE,CAAC4C,MAAM/C,EAAEd,MAAMK,GAAG3B,IAAIuC,EAAE6C,IAAIpF,GAAGY,EAAEJ,KAAK+B,KAAK,GAAGvC,EAAEE,KAAK,CAAC,IAAI8C,EAAEK,EAAE,SAAStD,EAAED,GAAG,IAAIE,EAAE,oBAAoBiB,QAAQlB,EAAEkB,OAAOE,WAAWpB,EAAE,cAAc,IAAIC,EAAE,CAAC,GAAGyB,MAAMC,QAAQ3B,KAAKC,EAAE6B,EAAE9B,IAAqC,CAACC,IAAID,EAAEC,GAAG,IAAII,EAAE,EAAEQ,EAAE,SAAFA,MAAe,MAAM,CAACe,EAAEf,EAAEZ,EAAE,SAAFA,IAAa,OAAOI,GAAGL,EAAEY,OAAO,CAAC0E,MAAK,GAAI,CAACA,MAAK,EAAG/D,MAAMvB,EAAEK,OAAOL,EAAE,SAAFA,EAAWA,GAAG,MAAMA,GAAG0D,EAAE7C,GAAG,MAAM,IAAIkB,UAAU,yIAAyI,IAAIH,EAAES,GAAE,EAAGG,GAAE,EAAG,MAAM,CAACZ,EAAE,SAAFA,IAAa3B,EAAEA,EAAEgC,KAAKjC,IAAIC,EAAE,SAAFA,IAAa,IAAID,EAAEC,EAAEsF,OAAO,OAAOlD,EAAErC,EAAEsF,KAAKtF,GAAGA,EAAE,SAAFA,EAAWA,GAAGwC,GAAE,EAAGZ,EAAE5B,GAAG0D,EAAE,SAAFA,IAAa,IAAIrB,GAAG,MAAMpC,EAAC,QAASA,EAAC,SAAU,QAAQ,GAAGuC,EAAE,MAAMZ,KAA3nB,CAAioB3B,EAAEE,MAAM,IAAI,IAAImD,EAAE1B,MAAMqB,EAAEK,EAAErD,KAAKqF,MAAM9C,EAAES,EAAE1B,OAAO,MAAMvB,GAAGsD,EAAEtD,EAAEA,GAAG,QAAQsD,EAAEI,UAAUlB,OAAOvC,EAAEK,SAASO,EAAEZ,EAAEK,OAAOO,IAAI,IAAIe,EAAEf,EAAEqB,MAAM,EAAEnC,EAAEyF,YAAYC,YAAY1F,EAAEiE,SAAS,CAAC0B,MAAM1F,EAAE2F,QAAQ9E,EAAE+E,QAAQhE,GAAG8B,EAAE,UAAU3D,IAAI8F,EAAE,gBAAgBC,EAAE,wBAAwBC,EAAE,gBAAgBC,EAAE,SAAFA,EAAWhG,EAAEC,GAAGD,EAAEgE,SAASiC,UAAUlG,EAAE,CAACmG,MAAMjG,GAAGD,EAAEgE,SAAS4B,QAAQ3F,KAAKkG,EAAE,SAAFA,EAAWnG,GAAGA,EAAEoG,UAAUpG,EAAEqG,SAASrG,EAAE2D,OAAOX,aAAa6C,GAAE,GAAI7F,EAAEsG,KAAKC,gBAAgB,UAAUvG,EAAEoG,QAAO,EAAG1C,EAAE,OAAO1D,KAAKwG,EAAE,SAAFA,EAAWxG,GAAGA,EAAEoG,UAAUpG,EAAEqG,SAASrG,EAAE2D,OAAOX,aAAa6C,GAAE,GAAI7F,EAAE2D,MAAMX,aAAa8C,EAAE,IAAI9F,EAAEsG,KAAKtD,aAAa,SAAS,IAAIhD,EAAEoG,QAAO,EAAG1C,EAAE,QAAQ1D,KAAKyG,EAAE,SAAFA,EAAWzG,EAAED,GAAG,IAAIE,EAAEF,EAAEoF,WAAW9E,EAAEN,EAAEuG,KAAKI,qBAAqBzG,EAAE0G,KAAK7E,IAAI7B,EAAE2G,UAAU3G,EAAE2G,SAASC,MAAM,KAAK,GAAG9G,EAAEqG,QAAQ/F,EAAEO,OAAO,CAAC,IAAIgB,EAAES,EAAEG,EAAEzC,EAAE+G,OAAO9G,GAAGK,EAAEO,SAASZ,EAAE,GAAGA,EAAE,IAAIA,EAAEK,EAAEO,OAAO,GAAGb,EAAE+G,OAAO9G,EAAEwC,GAAG,IAAInC,EAAEmC,GAAG+D,gBAAgBR,GAAGjE,IAAIO,EAAEhC,EAAEmC,GAAGuE,WAAWC,OAAOtG,MAAM2B,EAAExB,EAAEiB,KAAKzB,EAAEL,GAAGgD,aAAa+C,GAAE,GAAIjE,IAAIF,EAAEvB,EAAEL,GAAG+G,WAAWE,IAAIvG,MAAMkB,EAAEf,EAAEiB,IAAI/B,EAAE4D,MAAMX,aAAa8C,EAAEzF,EAAEN,EAAE+G,QAAQI,IAAInH,EAAEuG,KAAKa,UAAU9G,EAAEL,GAAGoH,UAAUrH,EAAEuG,KAAKe,aAAahH,EAAEL,GAAGqH,aAAa,EAAEtH,EAAEiE,SAAS8C,OAAO/G,EAAE+G,OAAOd,EAAEjG,EAAEC,GAAG0D,EAAE,WAAW3D,KAAKuH,EAAE,SAAFA,EAAWtH,GAAGyG,EAAEzG,EAAE8G,OAAO,EAAE9G,IAAIuH,EAAE,SAAFA,EAAWvH,GAAGyG,EAAEzG,EAAE8G,OAAO,EAAE9G,IAAIwH,EAAE,SAAFA,EAAWxH,EAAED,EAAEE,IAAIA,EAAEA,GAAG,EAAEA,EAAED,EAAE8G,QAAQ,IAAI9G,EAAEgE,SAASyD,MAAM1H,EAAEiG,EAAEhG,EAAEC,GAAGyD,EAAE,YAAY1D,GAAGwG,EAAExG,KAAK,SAAS0H,EAAE1H,EAAEC,GAAG,IAAII,EAAEsH,KAAK,OAAO,IAAIhD,SAAS,SAAS9D,EAAEiB,GAAG,IAAIF,EAAES,EAAE,OAAOT,EAAE3B,KAAKoC,EAAErC,EAAE2D,iBAAiBiE,kBAAkBvF,aAAawF,oBAAoBxF,EAAEd,MAAMc,EAAEkB,WAAW,SAASvD,EAAED,EAAEE,GAAG,OAAOF,EAAEA,EAAEC,GAAGA,EAAEY,QAAQX,EAAxC,CAA2C2B,EAAE5B,EAAE0F,MAAM1F,EAAE0F,MAAM9D,GAAGA,EAAE5B,EAAE8H,QAAQ9H,EAAE+H,WAAWvD,EAAExE,EAAE4B,GAAGoD,MAAM,SAAS/E,GAAG,IAAI,OAAOD,EAAEgE,oBAAoBgE,MAAMnH,KAAKoE,EAAErD,EAAE5B,GAAGA,EAAEwF,aAAa,SAASxF,GAAG,IAAIC,EAAED,EAAEwF,YAAYnF,EAAEL,EAAEsG,KAAKzF,EAAEb,EAAEmF,WAAWrD,EAAE9B,EAAEgE,SAASpC,EAAEE,EAAE6D,QAAQtD,EAAEP,EAAE8D,QAAQ,GAAG5F,EAAE8G,QAAQ,EAAEzG,EAAEkD,UAAU,GAAG3B,EAAEhB,QAAQX,EAAEgI,UAAU,CAAC,IAAIhF,EAAE,IAAIiF,iBAAiB7F,EAAEvB,SAAS,SAASd,EAAEC,GAAG,IAAII,EAAEmC,EAAE3B,EAAE8F,IAAI5G,EAAE,CAACmH,GAAG,GAAGiB,OAAOtH,EAAEqG,GAAG,KAAKiB,OAAOlI,GAAGmI,KAAK,SAAS7E,UAAUvD,EAAEoF,MAAMiD,OAAOpF,GAAGpC,EAAC,OAAQ,CAAC2C,MAAM3C,EAAC,SAAUA,EAAEyH,SAASzH,EAAEyH,QAAQjI,EAAEL,MAAMK,EAAEqC,OAAOO,GAAGhD,EAAEqI,SAASrI,EAAEqI,QAAQjI,EAAEyB,GAAGqE,EAAEnG,QAAQwG,EAAExG,GAA5Y,CAAgZA,GAAGiD,EAAEhB,KAAK5B,IAAI,MAAML,GAAG,OAAO8B,EAAE9B,MAAM8B,IAAI0E,EAAExG,GAAGiD,EAAEhB,KAAK5B,IAAI,SAAS4C,IAAI,OAAOpC,QAAQ,IAAI0H,EAAE,SAAFA,EAAWvI,EAAED,GAAG,IAAI,IAAIE,KAAKD,EAAE,IAAI,IAAIK,KAAKL,EAAEC,GAAGF,EAAEE,EAAEI,IAAi6B,SAASmI,EAAExI,GAAG,IAAIC,EAAE0H,KAAK,OAAO,IAAIhD,SAAS,SAAStE,EAAEQ,GAAG,IAAIiB,EAAEF,EAAES,EAAE,GAAGP,EAAE9B,EAAEyI,YAAYpG,EAAE,CAAC+F,KAAK,WAAW,aAAaxG,EAAE5B,EAAEwF,aAAa0B,GAAG,iBAAgB,EAAG,iBAAgB,GAAI1E,EAAExC,EAAE2D,MAAM5D,EAAEA,EAAE,CAAC,gBAAgB6B,EAAEsF,GAAG,oBAAoB,QAAQpF,GAAG,CAAC4G,YAAY5G,KAAK9B,EAAEqG,SAAStG,EAAE,GAAGsC,KAAKrC,EAAEqG,UAAUrG,EAAEqG,QAAQ7D,EAAE,MAAMzC,EAAE,CAAC4I,OAAO3I,EAAE2D,MAAMH,MAAMxD,EAAEmC,KAAK,YAAYE,KAAKT,IAAI5B,EAAEsG,KAAK9D,EAAEZ,EAAE+E,IAAI5G,EAAE,CAAC6I,KAAK,CAAChH,EAAEiH,YAAYjH,EAAEkH,UAAU5B,GAAGtF,EAAEsF,GAAGkB,KAAK,UAAUW,OAAO,UAAUnH,EAAC,OAAQ,CAAC4B,MAAM5B,EAAC,UAAr3C,SAAFoH,EAAWhJ,GAAG,IAAIC,EAAEI,EAAEQ,EAAEiB,EAAE9B,EAAEiJ,OAAOrH,GAAG3B,EAAE,SAAFA,IAAa,OAAOyH,EAAE1H,IAAIK,EAAEL,EAAEkJ,SAAS,WAAWC,aAAatI,GAAGA,EAAEuI,YAAY,WAAW,OAAOnJ,MAAMI,KAAKgC,EAAErC,EAAEiJ,OAAOlJ,EAAE,CAAC4D,MAAM5D,EAAE,GAAG+B,GAAGA,EAAE6B,QAAQ3D,EAAEwF,aAAa,CAACc,KAAKxE,EAAE/B,EAAE,GAAG+B,EAAEwE,MAAM,KAAK9D,EAAE,CAACmB,MAAM,CAACA,MAAM,SAANA,QAAiB/B,KAAKyH,QAAQ,SAARA,QAAiBtJ,IAAI,SAASC,EAAED,GAAG,OAAOC,EAAEsJ,SAAS,KAAK,GAAG,KAAK,GAAGtJ,EAAEuJ,iBAAiB,KAAKvJ,EAAEsJ,QAAQhC,EAAEvH,GAAGwH,EAAExH,GAAG,MAAM,KAAK,GAAGA,EAAEyJ,QAAQxJ,EAAEuJ,iBAAiBxJ,EAAE+G,QAAQ,GAAGU,EAAEzH,EAAEC,GAAG,MAAM,KAAK,EAAED,EAAEyF,YAAYiE,WAAW1J,EAAE+G,QAAQ,GAAGU,EAAEzH,EAAEC,GAAG,MAAM,KAAK,GAAGD,EAAE4D,MAAMpC,MAAM,GAAGiF,EAAEzG,IAAtP,CAA2PA,EAAEC,IAAI0J,KAAK,SAALA,OAAgBlD,EAAExG,KAAKsG,KAAK,CAACqD,UAAU,SAAVA,UAAmB3J,GAAGA,EAAEuJ,kBAAkBK,MAAM,SAANA,MAAe7J,IAAI,SAASC,EAAED,GAAG,IAAIE,EAAEF,EAAEoF,WAAWwB,IAAIkD,cAAcxJ,EAAEqB,MAAMG,KAAK9B,EAAEuG,KAAKwD,iBAAiB7J,IAAIY,EAAEb,EAAE+J,OAAOC,QAAQ/J,GAAGY,GAAGA,EAAEoJ,WAAWhK,GAAGuH,EAAEzH,EAAEC,EAAEK,EAAEoE,QAAQ5D,IAArJ,CAA0Jd,EAAEC,MAAMuI,EAAE/F,GAAG,SAASzC,EAAEE,IAAID,EAAEwF,aAAa,UAAUvF,KAAKoC,EAAEtC,GAAGE,KAAKoC,EAAEtC,GAAGE,GAAGuC,EAAEzC,GAAGE,QAAQsI,EAAElG,GAAG,SAAStC,EAAEE,GAAGD,EAAED,GAAGmK,iBAAiBjK,EAAEoC,EAAEtC,GAAGE,OAA6e+I,CAAEhJ,GAAGA,EAAE4E,KAAKC,MAAM,OAAOL,EAAExE,GAAGgF,MAAM,SAAShF,GAAG,IAAI,OAAOiD,EAAEhB,KAAKhC,GAAG,MAAMD,GAAG,OAAOa,EAAEb,MAAMa,GAAG,SAASoC,IAAI,OAAOS,EAAE,OAAO1D,GAAGK,IAAI,OAAO4C,EAAEhB,KAAKhC,MAAM,SAASkK,EAAEnK,GAAG,IAAID,EAAEC,EAAEsB,UAAUvB,EAAEqK,KAAK,WAAW5B,EAAEb,OAAO5H,EAAEsK,MAAM,SAASrK,GAAG0H,EAAEC,KAAK3H,IAAID,EAAEuK,OAAO,WAAW,GAAG3C,KAAKtB,QAAQ,CAAC,IAAIrG,EAAE2H,KAAKtB,QAAQzD,WAAW5C,EAAE6C,aAAa8E,KAAKhE,MAAMgE,KAAKtB,SAASrG,EAAEuK,YAAY5C,KAAKtB,SAAS,IAAItG,EAAEwI,GAAGxI,EAAE4H,MAAMsB,QAAQ,SAASjJ,EAAEC,GAAGF,EAAEC,GAAGwK,oBAAoBvK,EAAEF,EAAEkJ,OAAOjJ,GAAGC,QAAQF,EAAE0K,KAAK,WAAWtE,EAAEwB,OAAO5H,EAAE2K,MAAM,WAAWlE,EAAEmB,OAAO5H,EAAE4K,KAAK,SAAS3K,GAAGyG,EAAEzG,EAAE2H,OAAO5H,EAAEwF,KAAK,WAAW+B,EAAEK,OAAO5H,EAAE6K,SAAS,WAAWrD,EAAEI,OAAO5H,EAAE8K,OAAO,SAAS7K,GAAGwH,EAAEG,KAAK,KAAK3H,IAAID,EAAE+K,OAAO,SAAS9K,EAAED,EAAEE,GAAG,OAAOiE,EAAElE,EAAED,EAAEE,IAAI,OAAO,SAASD,EAAED,GAAG4H,KAAKoD,QAAQhL,EAAE4H,KAAKT,GAAGlH,EAAEgL,WAAWhL,EAAEgL,WAAW,GAAG,EAAErD,KAAKxF,KAAK,eAAewF,KAAKtB,QAAQ,EAAEsB,KAAKI,UAAU,EAAEJ,KAAKuB,SAAS,EAAEvB,KAAKnC,YAAY,CAACsD,SAAS,WAAWnC,IAAI,KAAKlB,WAAW,GAAGkC,KAAKxC,WAAW,CAACwB,IAAI,MAAM,SAAS3G,GAAG,IAAID,EAAEC,EAAEmC,KAAK9B,EAAEL,EAAE+K,QAAQlK,EAAEb,EAAEwF,YAAY1D,EAAE9B,EAAEmF,WAAW,IAAI,IAAIvD,KAAKvB,EAAE,GAAG,WAAWJ,EAAEI,EAAEuB,IAAI,IAAI,IAAIY,KAAKxC,EAAE4B,KAAK5B,EAAE4B,GAAG,IAAIvB,EAAEuB,GAAG5B,EAAE4B,GAAGY,GAAGnC,EAAEuB,GAAGY,QAAQxC,EAAE4B,GAAGvB,EAAEuB,GAAG5B,EAAEiL,SAASjL,EAAEiL,UAAU,IAAIlL,EAAEc,EAAEgI,YAAYhI,EAAEgI,aAAa7I,EAAEiL,SAASpK,EAAEqG,GAAGrG,EAAEqG,IAAInH,EAAE,SAASC,EAAEkH,GAAGpF,EAAEoF,GAAGpF,EAAEoF,IAAInH,EAAE,UAAUC,EAAE2D,MAAMtB,EAAErC,EAAEiL,UAA7S,CAAwTtD,MAAMwC,EAAElI,KAAK0F,KAAK3H,GAAGwI,EAAEb,QAAQ,UAAwBxG,EAAP+J,SAAS,IAAoBC,EAAOA,EAAOD,QAAQnL,SAAkD,0BAARqL,KAAQ,mC,4tFCctzR,+B,+CAAsC,OAAlB,WAAkB,MAAtC,CAAoB,KAEpB,iF,OACI,EAAAC,uBAAyB,qBACzB,EAAAC,2BAA6B,gDAC7B,EAAAC,eAAiB,yBACjB,EAAAC,iBAAmB,qB,EACvB,OALwB,eAKxB,UALA,CAAwB,KAOxB,iF,OACI,EAAAC,eAAiB,IAAI,IAAkB,uBACvC,EAAAC,QAAU,IAAI,IAAkB,6FAChC,EAAAC,YAAc,IAAI,IAAkB,yBACpC,EAAAC,gBAAkB,IAAI,IAAkB,yBAA0B,YAClE,EAAAC,YAAc,mBACd,EAAAC,QAAU,8BACV,EAAAP,eAAiB,+BACjB,EAAAQ,+BAAiC,4CACjC,EAAAT,2BAA6B,IAAI,IAAkB,kDACnD,EAAAU,uBAAyB,IAAI,IAAkB,uDAC/C,EAAAC,eAAiB,IAAI,IAAkB,4BACvC,EAAAC,WAAa,eACb,EAAAC,qCAAuC,0CACvC,EAAAC,oBAAsB,wB,EAC1B,OAfwB,eAexB,UAfA,CAAwB,KAiBxB,gF,OACI,EAAAV,QAA8B,GAC9B,EAAAC,YAAkC,GAClC,EAAAF,eAA0C,G,EAK9C,OARuB,cAQvB,SARA,CAAuB,KA2BvB,EACI,WAAmBY,EAA6BC,EAA2BC,GAAxD,KAAAF,KAA6B,KAAAC,aAA2B,KAAAC,aAI/E,aAkDI,qBAAqBlG,GAAA,KAAAA,UA0TzB,OAjWI,sBAAc,4CAAmB,C,IAAjC,WACI,OAAOsB,KAAK6E,sB,gCAIhB,sBAAc,yCAAgB,C,IAA9B,WACI,OAAO,G,gCAIX,sBAAc,mDAA0B,C,IAAxC,WACI,OAAO,G,gCAIX,sBAAc,0DAAiC,C,IAA/C,WACI,OAAO,G,gCAGX,sBAAc,0CAAiB,C,IAA/B,WACI,OAAO7E,KAAK8E,SAASC,WAAW,sBAAsB/E,KAAKgF,sBAAqB,UAAWhF,KAAKiF,SAAShB,kB,gCAG7G,sBAAc,8CAAqB,C,IAAnC,WACI,OAAOjE,KAAK8E,SAASzC,QAAQrC,KAAKkF,UAAUX,WAAYvE,KAAKiF,SAASZ,wBAAwBlC,iBAAiB,U,gCAGnH,sBAAc,sCAAa,C,IAA3B,WACI,MAAO,CACHgD,GAAI,mBACJC,IAAK,wBACLC,KAAM,kBACNC,KAAM,uBACNC,GAAI,aACJC,GAAI,mBACJC,GAAI,yB,gCAMZ,sBAAAC,WAAA,WACI1F,KAAK2F,eAAiB3F,KAAK4F,cAC3B5F,KAAK6F,yBACL7F,KAAK8F,mBACL9F,KAAKiF,SAASS,WAAW1F,KAAKtB,SAC1BsB,KAAKiF,SAASnB,eAAe7K,QAAU+G,KAAK+F,mBAAqB/F,KAAKgG,aAAaC,MACnFjG,KAAKkG,mBAETlG,KAAKmG,oBACLnG,KAAK8E,SAASsB,YAAYpG,KAAKkF,UAAUT,qBAAqBtL,SAAQ,SAACwH,EAASzH,GAC5EyH,EAAQtF,aAAa,aAAc,wCAQ3C,sBAAAyK,iBAAA,W,QACI9F,KAAKgF,sBACgC,QADR,EAA2D,QAA3D,EAAAhF,KAAK8E,SAASC,WAAc/E,KAAKkF,UAAUf,QAAO,iBAAS,eAClFhJ,aAAa,0BAAkB,eAC/BO,QAAQ,MAAO,KAGzB,sBAAAmK,uBAAA,WACI7F,KAAK6E,qBAAuB,CAAEwB,cAAc,IAGtC,sBAAAC,gBAAV,SAA0BC,EAAMtJ,GAC5B,IAAIuJ,GAE0C,IAA1CxG,KAAKyG,oBAAoBJ,aACzBG,EAAM7L,SAASG,cAAc,QAE7B0L,EAAM7L,SAASG,cAAc,MACzB4L,KAAOzJ,EAAKrD,MAAM+M,IAG1BH,EAAII,UAAY,2BAChBJ,EAAI5K,UAAY,oCAAoCqB,EAAKrD,MAAM8C,UAAS,UAGpEO,EAAKrD,MAAMiN,eAGfN,EAAKlL,aAAa,aAAcmL,EAAIM,WACpCP,EAAK3K,UAAY,GACjB2K,EAAKQ,YAAYP,IAGrB,sBAAc,uCAAc,C,IAA5B,WACI,MAAO,CACHpG,UAAW,EACXmB,SAAU,IACV/D,WAAY,CACRmD,QAASX,KAAKsG,gBAAgBU,KAAKhH,MACnCnE,MAAUmE,KAAKZ,UAAUsE,uBAAsB,SAEnDnG,aAAc,SAACQ,EAAOkJ,GAClB,OAAOA,EAAOvK,WAAauK,EAAOC,S,gCAKpC,sBAAAC,WAAV,SAAqBC,EAAgCC,GAArD,WACI,OAAO,SAAP,CACIpK,KAAM,CACFG,IAAK,wD,yEACKuJ,EAAM3G,KAAKsH,cAAcF,IAEd,GAAMG,MAAMZ,IADzB,M,OAEO,SADM,SACKa,Q,OAAlB,MAAO,CAAP,EAAO,U,OAEP,MAAO,CAAC,EAAD,YAGftK,OAAO,GAEXoG,SAAU,WAAM,OAAA8D,EAAe1C,IAC/B7G,YAAamC,KAAKyH,iBAAiBL,IAChCpH,KAAK0H,iBAIN,sBAAAC,0BAAV,SAAoCnB,GAGhCxG,KAAKyG,oBAAoBJ,aAAerG,KAAK8E,SAAS8C,gBAAgBpB,EAAKxG,KAAKZ,UAAUuE,6BAGpF,sBAAAkE,yBAAV,SAAmCT,GAC/BpH,KAAK2H,0BAA0BP,EAAe1C,IAC9C,IAAI2C,EAAgC,GAC9BS,EAAU9H,KAAKmH,WAAWC,EAAgBC,GAGhD,OAFAA,EAAkB,IAAI,IAAaS,GACnC9H,KAAK8E,SAASvC,iBAAiB6E,EAAe1C,GAAI,YAAa1E,KAAK+H,YAAYf,KAAKhH,OAC9EqH,GAID,sBAAAI,iBAAV,SAA2BL,GAA3B,WACI,MAAO,CACHtJ,WAAY,GACZkK,QAAQ,EACRC,OAAQ,gBAAkBC,KAAKC,KAAqB,IAAhBD,KAAKE,UACzCvM,MAAO,qBACPqF,YAAa,WAAM,SAAKmH,sBAAsBjB,MAI5C,sBAAAiB,sBAAV,SAAgCjB,GAC5B,OAAIpH,KAAK8E,SAASzC,QAAQrC,KAAKkF,UAAUtB,eAAgBwD,EAAe1C,IAC7D0C,EAAe1C,GAAG4D,cAEtBlB,EAAe1C,GAAG4D,cAAcA,eAIjC,sBAAApC,iBAAV,sBACIlG,KAAKuI,qBAAuB,IAAIC,IAChCxI,KAAKiF,SAASnB,eAAe3K,SAAQ,SAACwH,EAASzH,G,MAC3CyH,EAAQtF,aAAa,OAAQ,UAC7B,IAAI+L,EAAiB,IAAIqB,EAAe9H,EAAS,KAAM,MAGnDA,EAAQ2H,cAAclJ,UAAUsJ,SAAS,oBACzCtB,EAAexC,UAAyG,QAA7F,IAAKE,SAASC,WAA6B,EAAKG,UAAUhB,YAAavD,EAAQ2H,sBAAc,eAAE1O,MAC1HwN,EAAezC,WAAa,WAGhC,EAAK4D,qBAAqBI,IACtBvB,EACA,EAAKS,yBAAyBT,QAK1C,sBAAAjB,kBAAA,sBACQnG,KAAK+F,mBAAqB/F,KAAKgG,aAAaC,MAC5CjG,KAAKiF,SAASnB,eAAe3K,SAAQ,SAAA6C,GACjCA,EAAMuG,iBAAiB,UAAW,EAAKqG,UAAU5B,KAAK,EAAMhL,OAIpEgE,KAAKiF,SAASlB,QAAQ5K,SAAQ,SAAA0P,GAC1BA,EAAKtG,iBAAiB,SAAU,EAAKuG,aAAa9B,KAAK,EAAM6B,OAG7D7I,KAAKiF,SAASjB,aAAehE,KAAKiF,SAASjB,YAAY/K,OAAS,GAChE+G,KAAKiF,SAASjB,YAAY7K,SAAQ,SAAAoN,GAC9BA,EAAKhE,iBAAiB,QAAS,EAAKwG,uBAAuB/B,KAAK,EAAMT,OAI9EvG,KAAKgJ,+BACLhJ,KAAKiJ,yBAGC,sBAAAA,sBAAV,WACI,IAAMC,EAAqBvO,SAASC,cAAc,6CAC5CuO,EAAoBxO,SAASwH,iBAAiB,8BAU9CiH,EAAW,IAAIC,kBATI,SAASC,GAC9BA,EAAcnQ,SAAQ,SAAAoQ,GACfA,EAASnH,OAAOoH,SAASvQ,OACxBiQ,EAAmBtN,UAAe2N,EAASnH,OAAOoH,SAASvQ,OAAM,kEAEjEiQ,EAAmBtN,UAAY,kCAK3CuN,EAAkBhQ,SAAQ,SAAAwH,GACtByI,EAASK,QAAQ9I,EAAS,CAAE+I,WAAW,QAKrC,sBAAAZ,aAAV,SAAuBD,EAAuBxQ,G,MAEvB,MADwF,QAAxF,EAAA2H,KAAK8E,SAASC,WAA6B/E,KAAKkF,UAAUpB,eAAeR,SAAUuF,UAAK,eAAEjP,QAEzG+P,OAAOC,SAASlD,KAAO,mBACvBrO,EAAEuJ,kBAEFiH,EAAKhH,UAIH,sBAAAkG,YAAV,SAAsBjI,IAC4B,IAA1CE,KAAKyG,oBAAoBJ,aAEzBvG,EAAMsC,OAAOxI,MAAQkG,EAAM1D,OAAOkC,UAAU1E,MAAMsN,MAElDyC,OAAOC,SAASlD,KAAO5G,EAAM1D,OAAOkC,UAAU1E,MAAM+M,KAKlD,sBAAAiC,UAAV,SAAoB5M,EAAyB3D,GAA7C,WACI,GAAkB,KAAdA,EAAEsJ,QAAgB,CAElB,IAAMkI,WAAa,WAAM,SAAK/E,SAASzC,QAAQ,OAAQrG,GAAOC,cAAc,IAAI6N,MAAM,SAAU,CAAE3N,SAAS,EAAMG,YAAY,MAC7H,GAAI0D,KAAK+J,2BAA4B,CACjC,GAAI/J,KAAK8E,SAASC,WAAW/E,KAAKkF,UAAUd,+BAAgCpE,KAAKtB,SAC7E,OAEJ,OAAOmL,aACJ,GAAoB,KAAhB7N,EAAMpC,MACb,OAEJiQ,eAIE,sBAAAd,uBAAV,SAAiCxC,EAAmBlO,GAChD,IAAM2R,EAAiBzD,EAAKhH,GAC5B,GAAIS,KAAKgF,wBAA0BgF,EAE/BzD,EAAK3H,gBAAgB,eACrB6C,YAAW,WACP8E,EAAKlL,aAAa,cAAe,cAClC,QAEH,GAAI2E,KAAKiK,mCACL,GAAIjK,KAAKkK,kBAAmB,CACxB,IAAMlO,EAAQgE,KAAK8E,SAASC,WAA6B/E,KAAKkF,UAAUpB,eAAeR,SAAUtD,KAAKkK,mBACtGlK,KAAKgF,sBAAwBgF,EAC7BhO,EAAMpC,MAAQoC,EAAMpC,YAGxBoG,KAAKgF,sBAAwBgF,GAK/B,sBAAAhB,6BAAV,WACShJ,KAAK8E,SAAS8C,gBAAgB5H,KAAKtB,QAASsB,KAAKZ,UAAUwE,kBAIhE5D,KAAK8E,SAASvC,iBAAiBvC,KAAKiF,SAASnB,eAAgB,QAAS9D,KAAKmK,wBAAwBnD,KAAKhH,OAExGA,KAAK8E,SAASvC,iBAAiBvC,KAAKiF,SAASZ,uBAAwB,QAASrE,KAAKmK,wBAAwBnD,KAAKhH,OAChHA,KAAK8E,SAASvC,iBAAiBvC,KAAKiF,SAASZ,uBAAwB,QAASrE,KAAKoK,yBAAyBpD,KAAKhH,OAEjHA,KAAKmK,4BAGC,sBAAAC,yBAAV,sBACQ5D,EAAMxG,KAAKiF,SAASZ,uBACpBgG,EAAyB,KAAd7D,EAAI5M,MAEnB4M,EAAInL,aAAa,OAAQgP,EAAW7D,EAAI8D,QAAQ9P,KAAO,IAEvDwF,KAAKuK,sBAAsBpR,SAAQ,SAAC6C,GAEG,iBAA/BA,EAAMb,aAAa,SACiB,iBAApCa,EAAMb,aAAa,cACY,cAA/Ba,EAAMb,aAAa,UAIY,qBAA/Ba,EAAMb,aAAa,SACnB,EAAK2J,SAAS0F,cACV,EAAK1F,SAASzC,QAAQ,EAAK6C,UAAUV,qCAAsCxI,GAC3E,EAAKoD,UAAUyE,iBACfwG,GAKRrO,EAAMyO,SAAWJ,OAIf,sBAAAF,wBAAV,WACI,IAAIO,GAAW,GAGX1K,KAAK2K,UAAUC,WAAW5K,KAAKiF,SAAStB,6BACxC3D,KAAK2K,UAAUC,WAAW5K,KAAKiF,SAASZ,2BAExCqG,GAAW,GAIXA,EACA1K,KAAKiF,SAASX,eAAejJ,aAAa,WAAY,QAEtD2E,KAAKiF,SAASX,eAAe1F,gBAAgB,aAI3C,sBAAA0I,cAAV,SAAwB3G,GACpB,IAAMkK,EAAatS,OAAOuS,QAAQ9K,KAAK4F,eAAemF,QAAO,SAACC,EAAK,G,IAACtN,EAAG,KAAEuN,EAAI,KACnErR,EAAQ+G,EAAQ+D,GAAG4F,QAAQW,GAIjC,OAHIrR,GACAoR,EAAIlS,KAAQ4E,EAAG,IAAI9D,GAEhBoR,IACR,IACGE,EAAOvK,EAAQ+D,GAAG9K,MAAMuR,OAAOzP,QAAQ,SAAU,KACvD,OACIwP,EAAKhM,MAAM,KAAKjG,QAAUmS,SAASzK,EAAQ+D,GAAG4F,QAAQe,uBACtDH,EAAKjS,QAAUmS,SAASzK,EAAQ+D,GAAG4F,QAAQgB,sBAEpC,GAGJ,gDAAgDC,mBAAmBL,GAAK,IAAIL,EAAWjO,KAC1F,KACH,aAAmC,YAAvB+D,EAAQgE,WAA2B,WAAahE,EAAQiE,UAAY,KAxWrF,YADC,c,yBACuB,M,6CAExB,YADC,c,yBACoB,M,0CAJnB4G,YAAW,YADhB,YAAkBC,EAAWC,EAAUC,EAAWC,G,gCAmDjBC,eAlD5BL,aAAN,GA8We,O,kBCrbXM,GAAGC,eAAiB,CAChBtJ,KAAM,SAANA,OACI,GAAIqJ,GAAGrR,KAAKwL,KAGR,IAFA,IAAM+F,EAAOrR,SAASoE,qBAAqB,OACvC7F,EAAI8S,EAAK/S,OACNC,KACH8S,EAAK9S,GAAGmC,aAAa,aAAa,M,kBCCtDsO,OAAOsC,WAAc,WACjB,IAAI5C,EAAmBM,OAAON,kBAAoBM,OAAOuC,uBACrDC,EAAyBxC,OAAOpH,iBAEpC,OAAO,SAAU6J,EAAKC,EAAeC,EAAiBC,GAClD,GAAIlD,EAAkB,CAClB,IAAImD,EAAM,IAAInD,GAAiB,SAAUoD,GACjCJ,EACAE,EAASE,IAELA,EAAU,GAAGC,WAAWzT,QAAUwT,EAAU,GAAGE,aAAa1T,SAAQsT,OAG5EnJ,EAAUkJ,GAAmB,CAC7B5C,WAAW,EACXkD,SAAS,EACTC,YAAY,GAEZT,GACAI,EAAI/C,QAAQ2C,EAAKhJ,QAEd+I,IACPC,EAAI7J,iBAAiB,kBAAmBgK,GAAU,GAClDH,EAAI7J,iBAAiB,iBAAkBgK,GAAU,KAvBxC,I,kBCPrB,IA0BQO,IAAU,CACVC,QAAS,SAATA,QAAmBC,GACf,OAAKA,GAIDC,mBACItS,SAASuS,OAAOxR,QACZ,IAAIyR,OACA,mBACI5B,mBAAmByB,GAAMtR,QAAQ,cAAe,QAChD,+BAER,QAVD,MAef0R,QAAS,SAATA,QAAmBJ,EAAMK,EAAQC,EAAMC,EAAOC,EAASC,GACnD,IAAKT,GAAQ,6CAA6CvS,KAAKuS,GAC3D,OAAO,EAEX,IAAIU,EAAW,GACf,GAAIJ,EACA,OAAQA,EAAK5T,aACT,KAAKiU,OACDD,EAAWJ,IAASM,IAAW,0CAA4C,aAAeN,EAC1F,MACJ,KAAK/R,OACDmS,EAAW,aAAeJ,EAC1B,MACJ,KAAKO,KACDH,EAAW,aAAeJ,EAAKQ,cAY3C,OARAnT,SAASuS,OACL3B,mBAAmByB,GACnB,IACAzB,mBAAmB8B,GACnBK,GACCF,EAAU,YAAcA,EAAU,KAClCD,EAAQ,UAAYA,EAAQ,KAC5BE,EAAU,WAAa,KACrB,GAEXM,WAAY,SAAZA,WAAsBf,EAAMO,EAAOC,GAC/B,QAAKxN,KAAKgO,QAAQhB,KAGlBrS,SAASuS,OACL3B,mBAAmByB,GACnB,4CACCQ,EAAU,YAAcA,EAAU,KAClCD,EAAQ,UAAYA,EAAQ,KAC1B,IAEXS,QAAS,SAATA,QAAmBhB,GACf,QAAKA,GAGE,IAAIG,OAAO,cAAgB5B,mBAAmByB,GAAMtR,QAAQ,cAAe,QAAU,WAAWjB,KACnGE,SAASuS,SAGjB1U,KAAM,SAANA,OAII,IAHA,IAAIyV,EAAQtT,SAASuS,OAChBxR,QAAQ,0DAA2D,IACnEwD,MAAM,uBACFgP,EAAOD,EAAMhV,OAAQkV,EAAO,EAAGA,EAAOD,EAAMC,IACjDF,EAAME,GAAQlB,mBAAmBgB,EAAME,IAE3C,OAAOF,IAIfnC,GAAGgB,QAAUA,G,kBCvGjB,IACQsB,EAEAzP,EAFAyP,EAAQC,EAAE,QAEV1P,EAAO,CACP2P,WAAY,eACZC,aAAc,qBAEd9L,KAAM,SAANA,OACI9D,EAAK6P,GAAGC,QACR9P,EAAK+P,WAETA,QAAS,SAATA,UACIN,EAAMI,GAAG,QAAS,4BAA4B,SAAUnW,GACpDA,EAAEuJ,iBACFjD,EAAK6P,GAAGG,WAAWN,EAAErO,WAG7BwO,GAAI,CACAC,MAAO,SAAPA,QACmBJ,EAAE,oBAERO,MAAK,WACIP,EAAErO,MAAM6O,KAAK,0BACnBC,WAIhBH,WAAY,SAAZA,WAAsBI,GAClB,IAAIC,EAAUD,EACVE,EAAWD,EAAQ3M,QAAQ,oBAC3B6M,EAAUD,EAASzF,SAAS,0BAA0B2F,SAC1DxQ,EAAKyQ,kBAAkBH,GAEvBA,EAASI,YAAY,YACrBL,EAAQH,KAAK,KAAKQ,YAAY1Q,EAAK2P,WAAa,IAAM3P,EAAK4P,cAEvDU,EAASK,SAAS,aAClBN,EAAQO,KAAK,iBAAiB,GAC9BL,EAAQK,KAAK,eAAe,KAE5BP,EAAQO,KAAK,iBAAiB,GAC9BL,EAAQK,KAAK,eAAe,KAGpCC,UAAW,SAAXA,UAAqBT,GACjB,IAAIE,EAAWZ,EAAE,oBACjB1P,EAAKyQ,kBAAkBH,GACvBA,EAASQ,YAAY,YACrB,IAAIP,EAAUD,EAASzF,SAAS,0BAA0BsF,OAC5CT,EAAE,4BAGXkB,KAAK,gBAAiB,SACtBV,KAAK,KACLa,SAAS/Q,EAAK2P,YACdmB,YAAY9Q,EAAK4P,cACtBW,EAAQK,KAAK,eAAe,KAGpCH,kBAAiB,SAAjBA,kBAAkBO,QAC8BC,IAAxCD,EAAgB1S,KAAK,gBAAwE,KAAxC0S,EAAgB1S,KAAK,iBAC1E0B,EAAK2P,WAAaqB,EAAgB1S,KAAK,qBAGG2S,IAA1CD,EAAgB1S,KAAK,kBAA4E,KAA1C0S,EAAgB1S,KAAK,mBAC5E0B,EAAK4P,aAAeoB,EAAgB1S,KAAK,oBAKrD6O,GAAGnN,KAAOA,G,kBCtEd,IACQyP,EACAyB,EAIAC,EALA1B,EAAQC,EAAE,QACVwB,EAAUxB,EAAE1E,QAIZmG,EAAQ,CACRd,QAASX,EAAE,yBACXa,QAAS,KACTa,QAAQ,EACRC,SAAU,KACVC,MAAO,KACPC,OAAQ,KACRC,sBAAsB,EAEtB1N,KAAM,SAANA,OACQzC,KAAKmQ,sBAAsBL,EAAMM,cAAc3N,OACnDqN,EAAMZ,QAAUb,EAAEyB,EAAMd,QAAQ/R,KAAK,WACrC6S,EAAMpB,WAEV0B,cAAe,CACX3N,KAAM,SAANA,OAGI,IAAI4N,EAAWhC,EAAE,gBACbgC,EAASpX,QACToX,EAASC,MAAMjC,EAAE,wBAGrBA,EAAE,0BAA0BtT,OAAO,6CAEvCwV,KAAM,SAANA,OACIlC,EAAE,8BAA8BkB,KAAK,eAAe,IAExDT,KAAM,SAANA,OACIT,EAAE,8BAA8BmC,WAAW,iBAGnD9B,QAAS,SAATA,UACIN,EAAMI,GAAG,QAAS,yBAAyB,SAAUnW,GACjDA,EAAEuJ,iBACFkO,EAAMd,QAAUX,EAAErO,MAClB8P,EAAMZ,QAAUb,EAAEyB,EAAMd,QAAQ/R,KAAK,WACrC6S,EAAMI,OAASJ,EAAMZ,QAAQL,KAAK,UAClCiB,EAAMG,MAAQH,EAAMZ,QAAQL,KAAK,oBACjCiB,EAAMG,MAAMrB,MAAK,SAAUrQ,GACnBA,IAAUuR,EAAMG,MAAMhX,OAAS,IAC/B6W,EAAME,SAAW3B,EAAErO,UAG3B8P,EAAMtB,GAAG+B,UAGbnC,EAAMI,GAAG,QAAS,UAAU,SAAUnW,GAClC,IAAI+J,EAASiM,EAAEhW,EAAE+J,SACZA,EAAOqO,GAAG,oBAAsBrO,EAAOC,QAAQ,kBAAkBpJ,OAAS,GAE3E6W,EAAMtB,GAAGM,UAIjBV,EAAMI,GAAG,QAAS,0BAA0B,SAAUnW,GAClDyX,EAAMtB,GAAGM,UAGbT,EAAE,UAAUG,GAAG,UAAWsB,EAAMY,WAAW1J,KAAK8I,IAEhDD,EAAQrB,GAAG,SAAS,SAAUnW,GA/D1B,KAgEIA,EAAEsJ,UACFmO,EAAMC,QAAS,OAI3BvB,GAAI,CACA+B,KAAM,SAANA,KAAgBlY,QACiB,IAAlByT,GAAG6E,YACV7E,GAAG6E,WAAWC,QAElBnP,YAAW,WACP2M,EAAMmB,KAAK,cAAe,SAC1BO,EAAMM,cAAcG,OACpB,IAAMM,EAAaf,EAAMZ,QAAQL,KAAK,eAClCgC,EAAW5X,OAAQ4X,EAAWzV,QAC7B0U,EAAMI,OAAO9U,UACnB,KACH0U,EAAMZ,QAAQ7M,QAAQ,qBAAqBqN,SAAS,YACpDrB,EAAE,4BAA4BqB,SAAS,6BAE3CZ,KAAM,SAANA,OACIV,EAAMoC,WAAW,eACjBV,EAAMM,cAActB,OACpBgB,EAAMZ,QAAQ7M,QAAQ,qBAAqBoN,YAAY,aAE3DqB,IAAK,SAALA,MACIhB,EAAMI,OAAOa,IAAI,YACjBjB,EAAME,SAASe,IAAI,YACnBjB,EAAME,SAASxB,GAAG,YAAY,WAC1BsB,EAAMI,OAAO9U,YAGrB4V,UAAW,SAAXA,YACIlB,EAAME,SAASe,IAAI,YACnBjB,EAAMI,OAAOa,IAAI,YACjBjB,EAAMI,OAAO1B,GAAG,YAAY,WACxBsB,EAAME,SAAS5U,aAI3BsV,WAAY,SAAZA,WAAsBrY,GAxGd,KAyGAA,EAAEsJ,UACFmO,EAAMC,QAAS,GA3Gd,KA8GA1X,EAAEsJ,SAAWtJ,EAAE4Y,SACXnB,EAAMC,OAGPD,EAAMtB,GAAGwC,YAFTlB,EAAMtB,GAAGsC,SAQzBhF,GAAGgE,MAAQA,G,oBC3Hf,IACU1B,IAAQC,EAAE,QAChBvC,GAAGoF,WAAa,CACZC,OAAQ,CACJnC,QAAS,wBACTE,QAAS,KACTkC,SAAU,KACVC,SAAU,0BACVC,QAAS,yBACTC,KAAM,MAEV9O,KAAM,SAANA,OAC8CzC,KAAKoQ,cAAc3N,OAC7DzC,KAAK2I,MACL3I,KAAKwR,YAETpB,cAAe,CACX3N,KAAM,SAANA,OACI,IAAI4N,EAAWhC,EAAE,gBACbgC,EAASpX,QACToX,EAASC,MAAMjC,EAAE,qBAGzBkC,KAAM,SAANA,OACIlC,EAAE,8BAA8BkB,KAAK,eAAe,IAExDT,KAAM,SAANA,OACIT,EAAE,8BAA8BmC,WAAW,iBAGnD7H,IAAK,SAALA,MACI3I,KAAKmR,OAAOC,SAAWzW,SAASwH,iBAAiBnC,KAAKmR,OAAOnC,SAC7DhP,KAAKmR,OAAOE,SAAW1W,SAASwH,iBAAiBnC,KAAKmR,OAAOE,UAC7DrR,KAAKmR,OAAOG,QAAU3W,SAASwH,iBAAiBnC,KAAKmR,OAAOG,UAEhEE,SAAU,SAAVA,WAAsB,IAAAC,EAAA,KAClBzR,KAAKmR,OAAOC,SAASjY,SAAQ,SAAAuY,GACzBA,EAAOnP,iBAAiB,SAAS,SAAAlK,GAC7BoZ,EAAKE,QAAQtZ,SAGrB2H,KAAKmR,OAAOE,SAASlY,SAAQ,SAAAuY,GACzBA,EAAOnP,iBAAiB,SAAS,SAAAlK,GAC7BoZ,EAAKC,eAGb1R,KAAKmR,OAAOG,QAAQnY,SAAQ,SAAAuY,GACxBA,EAAOnP,iBAAiB,SAAS,SAAAlK,GAC7BoZ,EAAK3C,KAAKT,EAAEqD,GAAQrP,QAAQ,kBAIxCsP,QAAS,SAATA,QAAmBtZ,GACfA,EAAEuJ,iBACF5B,KAAKmR,OAAOjC,QAAU7W,EAAEuZ,cAAczW,aAAa,eACnD6E,KAAKmR,OAAOI,KAAOlZ,EAAEuZ,cAAclL,KACnC1G,KAAKuQ,KAAKvQ,KAAKmR,OAAOjC,UAE1B2C,SAAU,SAAVA,SAAoBjY,GAChB+P,OAAOC,SAASlD,KAAO9M,GAE3B2W,KAAM,SAANA,KAAgBnO,GACZgM,EAAMmB,KAAK,cAAe,SAC1BvP,KAAKoQ,cAAcG,OACnBlC,EAAEjM,GAAQsN,SAAS,YACnBrB,EAAEjM,GAAQmN,KAAK,QAAQ,IAE3BT,KAAM,SAANA,KAAgB1M,GACZpC,KAAKoQ,cAActB,OACnBT,EAAEjM,GAAQqN,YAAY,YACtBpB,EAAEjM,GAAQoO,WAAW,SAEzBkB,OAAQ,SAARA,SACI1R,KAAK6R,SAAS7R,KAAKmR,OAAOI,S,wBCxE9BnD,EACA0D,EAEAC,E,OAHA3D,EAAQC,EAAE,QACVyD,GAAW,GAEXC,EAAY,CACZC,UAAW3D,EAAE,cACb4D,gBAAiB5D,EAAE,qBACnB6D,aAAc7D,EAAE,uBAChB8D,mBAAoB9D,EAAE,8BACtByD,UAAU,EACVM,cAAc,EACdC,MAAO,YACPC,oBAAqBjE,EAAE,0BACvBkE,SAAU,GACVC,kBAAmB,GACnBC,cAAc,EACdC,mBAAmB,EACnBC,kBAAkB,EAClBC,gBAAgB,EAChBC,gBAAiB,EACjBC,eAAe,EAEfrQ,KAAM,SAANA,OACIsP,EAAUgB,iBACVhB,EAAUiB,MAAM3E,EAAE,sBAClB0D,EAAUrD,UACVqD,EAAUkB,sBAEdA,mBAAoB,SAApBA,uBACAvE,QAAS,SAATA,UACIN,EAAMI,GAAG,QAAS,uBAAuB,SAAUnW,GAC/CA,EAAE6a,2BAEgC,cAA9B9E,EAAMmB,KAAK,gBAAkCwC,EAAUe,eACvDhH,GAAGqH,UAAU3E,GAAGM,OAEpB,IAAMS,EAAOlB,EAAErO,MAAMyQ,GAAG,uBAExB,KAAIpC,EAAErO,MAAMsP,SAAS,aAAgD,cAAhC9V,EAAO+V,KAAsC,IAATA,GAAkBuC,GAA3F,CAGIzZ,EAAEuJ,iBACF,IAAMwR,EAAQ/E,EAAErO,MAChB+R,EAAUvD,GAAGW,OAAOkE,OAAOD,GAG/B/E,EAAErO,MAAMG,QAAQ,8BAGhBiO,EAAMI,GAAG,QAAS,8BAA8B,SAAUnW,GACtD,IAAMkX,EAAOlB,EAAErO,MAAMyQ,GAAG,uBAExB,KACIpC,EAAErO,MAAMsP,SAAS,aACgB,cAAhC9V,EAAO+V,KAAsC,IAATA,GAAkBuC,GACvDC,EAAUuB,yBAAyBjF,EAAErO,QAHzC,CAOI3H,EAAEuJ,iBACF,IAAMwR,EAAQ/E,EAAErO,MAChB+R,EAAUvD,GAAGW,OAAOoE,OAAOH,OAMnChF,EAAMI,GAAG,QAAS,eAAe,SAAUnW,GACvCA,EAAEuJ,iBACF,IAAMwR,EAAQ/E,EAAErO,MAChB+R,EAAUvD,GAAGW,OAAOqE,IAAIJ,MAIhC/E,EAAE1T,UAAU6T,GAAGuD,EAAUM,MAAQ,OAAO,WAEpCP,GAAW,KAGfzD,EAAE1T,UAAU6T,GAAGuD,EAAUM,MAAQ,QAAQ,WAErCP,GAAW,MAGnBkB,MAAO,SAAPA,MAAiBjE,GACTgD,EAAUa,gBACVb,EAAU0B,UAGd1B,EAAUE,gBAAkBlD,EAE5BgD,EAAUE,gBAAgBrD,MAAK,WAC3B,IAAIwE,EAAQ/E,EAAErO,MACV0T,EAAkBN,EAAM/Q,QAAQ,cAEhCqR,EAAgBC,OAAO,4BAA4B1a,SACnD8Y,EAAUY,iBAAmBe,EAAgBC,SAAS1W,KAAK,sBAG/DmW,EAAMvE,KAAK,0BAA0BD,MAAK,SAAUrQ,GAChD,IAAI6U,EAAQ/E,EAAErO,MACd,GAAI+R,EAAUY,kBAAmD,QAA/BZ,EAAUY,iBAA4B,CACpE,GAAIZ,EAAUuB,yBAAyBF,GACnC,OAGCrB,EAAU6B,sBAAsB5T,OACjCzB,IAAUwT,EAAUc,iBACnBO,EAAM9D,SAAS,sBAShB8D,EAAM3D,YAAY,YAClB2D,EAAMvE,KAAK,8BAA8BU,KAAK,gBAAiB,SAC/D6D,EAAMvE,KAAK,8BAA8BC,SATzCsE,EAAM1D,SAAS,YACf0D,EAAMvE,KAAK,8BAA8BU,KAAK,gBAAiB,QAC/D6D,EAAMvE,KAAK,8BAA8B0B,OACrC6C,EAAMvE,KAAK,mBAAmB5V,QAC9B8Y,EAAU8B,oBAAoBT,EAAMvE,KAAK,0BAQjDuE,EAAM1D,SAAS,YACf0D,EAAMvE,KAAK,8BAA8BU,KAAK,gBAAiB,QAC/D6D,EAAMvE,KAAK,8BAA8B0B,cAKzDqD,sBAAuB,SAAvBA,wBACI,OAAO7B,EAAUU,cAErBqB,sBAAuB,SAAvBA,sBAAiCC,KACjCC,iBAAkB,SAAlBA,iBAA4BD,KAC5BE,aAAc,SAAdA,aAAwBF,GACpB,IAAIG,EAGJ,QAD6C,IAAlCH,EAAMxE,KAAK,oBAAwE,SAAlCwE,EAAMxE,KAAK,mBAEnE2E,EAAUnC,EAAUiC,iBAAiBD,OAClC,CACH,IAAMI,EAAWJ,EAAMxE,KAAK,iBACtB6E,EAAaL,EAAMxE,KAAK,mBAE9B2E,EACI,2CAFc3I,mBAAmB8C,EAAE,wBAAwBkB,KAAK,YAIhE,aACA4E,EACA,eACAC,EAER,OAAOF,GAEXL,oBAAqB,SAArBA,oBAA+BE,GAC3B,IAAIG,EAAUnC,EAAUkC,aAAaF,GACjCM,EAAaN,EAAMJ,SACvBtF,EAAEiG,KAAK,CACH3N,IAAKuN,EACLK,QAAS,SAATA,QAAmBtX,GACf8W,EAAM1R,QAAQ,0BAA0BkN,KAAK,kBAAmB,QAChEwE,EAAMS,YAAYvX,GACdoX,EAAWxF,KAAK,qBAAqB5V,QACrC8Y,EAAUiB,MAAMqB,EAAWxF,KAAK,sBAEpCwF,EAAWxF,KAAK,uBAAuBxP,SACvC0S,EAAU+B,sBAAsBO,IAEpCI,MAAO,SAAPA,aAGRjG,GAAI,CACAW,OAAQ,CACJkE,OAAQ,SAARA,OAAkBD,GACd,IAAIsB,EACAC,EAAoBvB,EAAMxV,KAAK,uBACnC,QAAiD,IAAtCwV,EAAM7D,KAAK,uBAAwC,CAC1D,IAAMqF,EAAgBxB,EAAM7D,KAAK,uBACjCoF,EAAoBtG,EAAEuG,GAE1BD,EAAkBE,YAAY,KAAK,WAC3BzB,EAAMO,SAASrE,SAAS,uBACxBjB,EAAE,qBAAqByG,OAAO,QAC9B/C,EAAUK,aAAesC,MAGjCtB,EAAM/D,YAAY,YAElB,IAAMJ,EAAWmE,EAAM/Q,QAAQ,yBAE/BqS,IAA0C,SAAhCtB,EAAM7D,KAAK,kBACrB6D,EAAM7D,KAAK,gBAAiBmF,GAC5B,IAAMK,EAA0B1G,EAAEvE,MAAM,4BACxCuE,EAAE1T,UAAUwF,QAAQ4U,EAAyB,CAAC3B,EAAOuB,IACjD1F,EAAShW,QAAQ8Y,EAAUvD,GAAGwG,eAAe5B,EAAOsB,EAAOzF,IAEnEsE,OAAQ,SAARA,OAAkBH,GACd,IAAM6B,EAAU7B,EAAM/Q,QAAQ,0BACxB6S,EAAU9B,EAAM/Q,QAAQ,qBAAqBmH,SAAS,aAEtDkL,IAA0C,SAAhCtB,EAAM7D,KAAK,kBAC3B6D,EAAM7D,KAAK,gBAAiBmF,GAC5B,IAAMzF,EAAWmE,EAAM/Q,QAAQ,yBAC3B4M,EAAShW,QAAQ8Y,EAAUvD,GAAGwG,eAAe5B,EAAOsB,EAAOzF,GAC1DgG,EAAQ3F,SAAS,YAkBlB2F,EAAQzL,SAAS,8BAA8B2L,QAAQ,KAAK,WACxD/B,EAAM3D,YAAY,YAClBwF,EAAQxF,YAAY,iBAnBpBsC,EAAUW,mBAAqBX,EAAUqD,4BAA4BH,KACrEC,EAAQ1L,SAAS,8BAA8B2L,QAAQ,KAE3DF,EAAQzL,SAAS,8BAA8B6L,UAAU,KAAK,YACtDtD,EAAUW,mBAAqBX,EAAUqD,4BAA4BH,KACrEC,EAAQzF,YAAY,YAGxBwF,EAAQvF,SAAS,YACuB,SAApCuF,EAAQ1F,KAAK,oBAAiC0F,EAAQpG,KAAK,mBAAmB5V,QAC9E8Y,EAAU8B,oBAAoBoB,EAAQpG,KAAK,oBAE/CkD,EAAUvD,GAAG8G,SAASlC,GACtB,IAAMmC,EAA0BlH,EAAEvE,MAAM,4BACxCuE,EAAE1T,UAAUwF,QAAQoV,EAAyB,CAACnC,SAU1DI,IAAK,SAALA,IAAeJ,GACX,IAAInE,EAAWmE,EAAM/Q,QAAQ,yBACzBqS,IAA0C,SAAhCtB,EAAM7D,KAAK,kBAGzB,GADA6D,EAAM7D,KAAK,gBAAiBmF,GACxBA,EAAO,CACPzF,EAASJ,KAAK,0BAA0Ba,SAAS,YACjDT,EACKJ,KAAK,mDACLa,SAAS,YACTH,KAAK,gBAAiBmF,GAC3BzF,EAASJ,KAAK,mDAAmDwG,UAAU,KAE3EjC,EAAMoC,KAAK,YAEX,IAAMC,EAAQxG,EAASJ,KAAK,qBAC5B4G,EAAM7G,MAAK,WACiC,SAApC6G,EAAMlG,KAAK,sBAAmCkG,EAAM5G,KAAK,mBAAmB5V,QAC5E8Y,EAAU8B,oBAAoB4B,EAAM5G,KAAK,4BAIjDI,EAASJ,KAAK,0BAA0BY,YAAY,YACpDR,EACKJ,KAAK,mDACLY,YAAY,YACZF,KAAK,gBAAiBmF,GAC3BzF,EAASJ,KAAK,mDAAmDsG,QAAQ,KAEzE/B,EAAMoC,KAAK,gBAIvBF,SAAU,SAAVA,SAAoBlC,KACpB4B,eAAgB,SAAhBA,eAA0B5B,EAAOsB,EAAOzF,GACpC,IAAIyG,EACAzG,EAAShW,SACTyc,EAAczG,EAASJ,KAAK,gBAG5B6G,EAAYzc,QAAgD,SAAtCyc,EAAYnG,KAAK,mBACvCmG,EAAYnG,KAAK,gBAAiBmF,GAC9BA,EAAOgB,EAAYF,KAAK,YACvBE,EAAYF,KAAK,iBAIlC/B,QAAS,SAATA,UAEI1B,EAAUC,UAAUpD,MAAK,WACrB,IAAIwE,EAAQ/E,EAAErO,MACdoT,EAAMvE,KAAK,uBAAuBU,KAAK,gBAAiB,SACnD6D,EAAMvE,KAAK,uBAAuBS,SAAS,YAErC8D,EAAMvE,KAAK,uBAAuBS,SAAS,YAClD8D,EAAMvE,KAAK,uBAAuBU,KAAK,gBAAiB,QAExD6D,EAAMvE,KAAK,uBAAuBY,YAAY,YAJ9C2D,EAAMvE,KAAK,uBAAuBC,WAQ9CiE,eAAgB,SAAhBA,iBACQhB,EAAUO,oBAAoBrZ,QAC9B8Y,EAAUO,oBAAoB1D,MAAK,SAAUrQ,GACzCwT,EAAUS,kBAAkBjU,GAAS8P,EAAErO,MACvC+R,EAAUQ,SAAShU,GAAS8P,EAAErO,MAAM/C,KAAK,mBACzC8U,EAAU4D,aAAapX,OAInC6W,4BAA6B,SAA7BA,4BAAuCH,GACnC,OAAOlD,EAAUW,mBAErBiD,aAAc,SAAdA,aAAwBpX,GACpB8P,EAAE1T,UAAU6T,GAAGuD,EAAUQ,SAAShU,GAAS,OAAO,WAC9C,IAAI6D,EAAS2P,EAAUS,kBAAkBjU,GACrC6D,EAAOnF,KAAK,qBAAuB8U,EAAUQ,SAAShU,KACtD6D,EAAOsN,SAAS,wBACwB,eAApCtN,EAAOnF,KAAK,qBACZmF,EAAOsN,SAAS,wBAEpBqC,EAAUiB,MAAMjB,EAAUS,kBAAkBjU,GAAOsQ,KAAK,0BAIhER,EAAE1T,UAAU6T,GAAGuD,EAAUQ,SAAShU,GAAS,QAAQ,WAE/C,IAAI6D,EAAS2P,EAAUS,kBAAkBjU,GACrC6D,EAAOnF,KAAK,qBAAuB8U,EAAUQ,SAAShU,KACtD6D,EAAOqN,YAAY,6CACnBrN,EAAOyM,KAAK,8BAA8B0B,cAM5C/B,GAAGW,OAAOkE,OAAS,SAAUD,GACnC,IAAIsB,EACAC,EAAoBvB,EAAMxV,KAAK,uBACnC,QAAiD,IAAtCwV,EAAM7D,KAAK,uBAAwC,CAC1D,IAAMqF,EAAgBxB,EAAM7D,KAAK,uBACjCoF,EAAoBtG,EAAEuG,GAE1BD,EAAkBE,YAAY,KAAK,WAC3BzB,EAAMO,SAASrE,SAAS,uBACxBjB,EAAE,qBAAqByG,OAAO,QAC9B/C,EAAUK,aAAesC,MAGjCtB,EAAM/D,YAAY,YAElB,IAAMJ,EAAWmE,EAAM/Q,QAAQ,yBAE/BqS,IAA0C,SAAhCtB,EAAM7D,KAAK,kBACrB6D,EAAM7D,KAAK,gBAAiBmF,GAC5B,IAAMK,EAA0B1G,EAAEvE,MAAM,4BACxCuE,EAAE1T,UAAUwF,QAAQ4U,EAAyB,CAAC3B,EAAOuB,IACjD1F,EAAShW,QAAQ8Y,EAAUvD,GAAGwG,eAAe5B,EAAOsB,EAAOzF,IAInE8C,EAAUvD,GAAGW,OAAOqE,IAAM,SAAUJ,GAChC,IAAInE,EAAWmE,EAAM/Q,QAAQ,yBACzBqS,IAA0C,SAAhCtB,EAAM7D,KAAK,kBAGzB,GADA6D,EAAM7D,KAAK,gBAAiBmF,GACxBA,EAAO,CACPzF,EAASJ,KAAK,0BAA0Ba,SAAS,YACjDT,EACKJ,KAAK,mDACLa,SAAS,YACTH,KAAK,gBAAiBmF,GAC3BzF,EAASJ,KAAK,mDAAmDwG,UAAU,KAE3EjC,EAAMoC,KAAK,YAEX,IAAMC,EAAQxG,EAASJ,KAAK,qBAC5B4G,EAAM7G,MAAK,WACiC,SAApC6G,EAAMlG,KAAK,sBAAmCkG,EAAM5G,KAAK,mBAAmB5V,QAC5E8Y,EAAU8B,oBAAoB4B,EAAM5G,KAAK,4BAIjDI,EAASJ,KAAK,0BAA0BY,YAAY,YACpDR,EACKJ,KAAK,mDACLY,YAAY,YACZF,KAAK,gBAAiBmF,GAC3BzF,EAASJ,KAAK,mDAAmDsG,QAAQ,KAEzE/B,EAAMoC,KAAK,eAKnBzD,EAAUuB,yBAA2B,SAAUF,GAC3C,QAASA,EAAMwC,QAAQ,qDAAqD3c,QAMpF6S,GAAGiG,UAAYA,G,kBCvYnB,IACQ8D,IAAa,CACbC,SAAU,KACV5G,QAAS,KACT6G,OAAQ,KACRC,WAAY,KACZC,iBAAkB,KAClB5D,MAAO,YAEP5P,KAAM,SAANA,OACqB4L,EAAE,8BAERO,MAAK,SAAUrQ,GACtB,IAAI6U,EAAQ/E,EAAErO,MAWd,GATA6V,EAAWC,SAAW1C,EAAMnW,KAAK,cACjC4Y,EAAW3G,QAAUb,EAAE+E,EAAMnW,KAAK,WAClC4Y,EAAWK,WAAa7H,EAAE+E,EAAMnW,KAAK,cACrC4Y,EAAWE,OAAS3C,EAAMnW,KAAK,oBAE/B4Y,EAAWM,QAAU/C,EAAMnW,KAAK,UAChC4Y,EAAWO,aAAehD,EAAMnW,KAAK,gBACrC4Y,EAAWQ,YAAcjD,EAAMnW,KAAK,eAEN,OAA1B4Y,EAAWK,iBAAwD,IAA1BL,EAAWK,WAA4B,CAYnD,IAAAI,EAXD,SAAxBT,EAAWC,SACXD,EAAWC,SAAW1C,EAEtByC,EAAWC,SAAW1C,EAAMvE,KAAKgH,EAAWC,UAEhDD,EAAWG,WAAaH,EAAWC,SAC9BS,OAAM,GAAM,GACZ/F,WAAW,eACXjB,KAAK,wBAAyBsG,EAAWE,QAE9CF,EAAWU,QACPV,EAAWO,eACXP,EAAW3G,QAAQL,KAAK,uBAAuBa,SAASmG,EAAWO,cACxB,QAA3CE,EAAAT,EAAW3G,QAAQL,KAAK,2BAAmB,IAAAyH,GAA3CA,EAA6C9F,WAAW,mBAExDqF,EAAWQ,aACXR,EAAWC,SAASpG,SAASmG,EAAWQ,cAEjB,IAAvBR,EAAWM,SACXN,EAAWxW,aAEZ,CACHwW,EAAW3G,QAAUkE,EAErB,IAAMoD,EAAQpD,EAAMnW,KAAK,UAAUiC,MAAM,KACzCmP,EAAEO,KAAK4H,GAAO,SAAUjY,EAAOgI,GAE3BsP,EAAWC,SAAWzH,EAAE9H,GACxBsP,EAAWG,WAAaH,EAAWC,SAC9BS,OAAM,GAAM,GACZhH,KAAK,wBAAyBsG,EAAWE,QAC9CF,EAAWU,QAEPV,EAAWO,cACXP,EAAWC,SAASpG,SAASmG,EAAWO,cAGxCP,EAAWQ,aACXR,EAAW3G,QAAQL,KAAK,uBAAuBa,SAASmG,EAAWQ,cAE5C,IAAvBR,EAAWM,SACXN,EAAWxW,gBAK3BwW,EAAWY,SAGfF,MAAO,SAAPA,QACQV,EAAWC,SAASxG,SAAS,YAE7BuG,EAAW3G,QAAQL,KAAK,uBAAuB5V,QAAU,IACrD4c,EAAW3G,QAAQuB,GAAG,MACtBoF,EAAW3G,QAAQnU,OAAO,wCAE1B8a,EAAW3G,QAAQnU,OAAO,0CAG9B8a,EAAWI,iBAAmBJ,EAAW3G,QAAQL,KAAK,uBAClDgH,EAAWG,WAAWvF,GAAG,QACzBoF,EAAWI,iBAAiBlb,OAAO,4CACnC8a,EAAWI,iBAAmBJ,EAAW3G,QACpCL,KAAK,2BACLa,SAASmG,EAAWQ,eAIjCR,EAAWI,iBAAiBlb,OAAO8a,EAAWG,YAC9CH,EAAWC,SAASpG,SAAS,UAE7BmG,EAAWa,qBAEfD,MAAO,SAAPA,QACI,IAAIE,EAAcd,EAAWI,iBAAiBzM,WAE9CmN,EAAYC,MAAK,SAAU/b,EAAGsD,GAC1B,OAAOkQ,EAAExT,GAAGoC,KAAK,oBAAsBoR,EAAElQ,GAAGlB,KAAK,uBAGrD4Y,EAAWI,iBAAiBY,KAAKF,IAErCtX,OAAQ,SAARA,SACQwW,EAAW3G,QACX2G,EAAWC,SAASzW,SAEpBwW,EAAWiB,QAAQzX,UAG3BqX,iBAAkB,SAAlBA,mBACI,IAAInX,EACAwX,EACAC,EACAlF,GAAW,EACXmF,EAAgBpB,EAAW3G,SAE1B+H,GAAiBA,EAAche,QAAU,GAAKge,EAAc3H,SAAS,sBAE1E/P,EAAK0X,EAAc1H,KAAK,QAEpB0H,EAAc1H,KAAK,KAAMhQ,EAAK,WAElC0X,EAAcpI,KAAK,2CAA2CD,MAAK,WAC/D,IAAIwE,EAAQ/E,EAAErO,MACdoT,EAAM1D,SAAS,mBACf,IAAInQ,EAAK6T,EAAM7D,KAAK,MAChB2H,EAAW9D,EAAM7D,KAAK,aAEtBhQ,GACA6T,EAAM7D,KAAK,KAAMhQ,EAAK,WAEtB2X,GACA9D,EAAM7D,KACF,YACA6D,EACK7D,KAAK,aACLrQ,MAAM,KACNvC,KAAI,SAAA4C,GAAE,OAAIA,EAAK,aACf3C,KAAK,UAItBma,EAAYE,EAAc1H,KAAK,wBAG3ByH,EAAa3I,EAAE,uBAAyB0I,EAAY,KAC/CjF,GACDkF,EAAWzH,KAAK,CAAC,gBAAiBwH,EAAY,YAElD1I,EAAE1T,UAAU6T,GAAGqH,EAAWxD,MAAQ,OAAO,WAErCP,GAAW,EACXkF,EAAWzH,KAAK,CAAC,gBAAiBwH,OAEtC1I,EAAE1T,UAAU6T,GAAGqH,EAAWxD,MAAQ,QAAQ,WAEtCP,GAAW,EACXkF,EAAWzH,KAAK,CAAC,gBAAiBwH,EAAY,mBAK9DjL,GAAG+J,WAAaA,G,kBCpKpB,IACQhG,EACAzB,EAEA+E,EAHAtD,EAAUxB,EAAE1E,QACZyE,EAAQC,EAAE,QAEV8E,EAAY,CACZjB,aAAc7D,EAAE,wBAChB8I,SAAU,KACVC,YAAa,KACblI,QAAS,KACTmI,SAAU,KACVpC,QAAS,KACTqC,OAAQ,GACRC,WAAYlJ,EAAE,cACdmJ,UAAW,KACXC,SAAUpJ,EAAE,sBACZgE,MAAO,YACPP,UAAU,EACV4F,aAAa,EACbC,UAAW,OACXC,IAAK,OAELnV,KAAM,SAANA,OACI0Q,EAAUzE,WAGdA,QAAS,SAATA,UACQyE,EAAUuE,cAGdvE,EAAUuE,aAAc,EAExBrJ,EAAE1T,UAAU6T,GAAG,QAAS,wBAAwB,SAAUnW,GACtDA,EAAEuJ,iBACFvJ,EAAEwf,kBAEF,IAAMpZ,EAAS4P,EAAErO,MAAMsP,SAAS,YAC5BwI,EAAoBzJ,EAAErO,MAAMyQ,GAAG,uBAC/BsH,EAAkB1J,EAAErO,MAAM/C,KAAK,mBAAoB,EAKvD,GAHAkW,EAAUiE,YAAc/I,EAAErO,MAC1BmT,EAAUtE,KAAKzM,SAEX3D,EACA0U,EAAU3E,GAAGM,WACV,CACH,GAAIqE,EAAUrB,YAAmC,IAAtBgG,GAA+BC,GACtD,OAEA5E,EAAU3E,GAAG+B,KAAKlY,OAK9BgW,EAAE1T,UAAU6T,GACR,QACA,6EACA,SAAUnW,GACN8a,EAAU3E,GAAGM,UAIrBe,EAAQrB,GAAG,UAAU,WACQ,MAArB2E,EAAU8B,SACV9B,EAAUtE,KAAKmJ,gBAIvB3J,EAAE1T,UAAU6T,GAAG2E,EAAUd,MAAQ,OAAO,WAEpCc,EAAUrB,UAAW,KAEzBzD,EAAE1T,UAAU6T,GAAG2E,EAAUd,MAAQ,QAAQ,WAErCc,EAAUrB,UAAW,OAG7BtD,GAAI,CACA+B,KAAM,SAANA,KAAgBlY,GAGP8a,EAAUiE,YAAY/U,QAAQ,sBAAsBpJ,aACzB,IAAjB6S,GAAG6E,YACV7E,GAAG6E,WAAWC,MAAMvY,GAIxB8a,EAAUjE,UACViE,EAAUiE,YAAYjX,QAAQ,iBAAkB,CAACgT,IAEjDA,EAAUjE,QAAQQ,SAAS,YAC3ByD,EAAUiE,YAAY1H,SAAS,YAC/BtB,EAAMmB,KAAK,cAAe,aAC1B4D,EAAUjE,QAAQ7M,QAAQ,qBAAqBqN,SAAS,YACxDyD,EAAS,OAAQ8E,OAEjB9E,EAAUjE,QAAQL,KAAK,qBAAqBqJ,QAAQ9c,QAGpD+X,EAAUiE,YAAY7H,KAAK,CAAC,gBAAiB,SAC7C4D,EAAUjE,QAAQsB,WAAW,eAGf2C,EAAUjE,QAAQL,KAAK,QAAQ5V,OAAS,GAElDka,EAAUjE,QAAQL,KAAK,cAAcD,MAAK,WACtC9C,GAAGqM,IAAI3J,GAAG4J,YAAY/J,EAAErO,UAGhCmT,EAAUiE,YAAYjX,QAAQ,mBAAoB,CAACgT,KAEvDA,EAAUkF,oBAEdvJ,KAAM,SAANA,OAEQqE,EAAUjE,UACViE,EAAUiE,YAAYjX,QAAQ,kBAAmB,CAACgT,IAGlDA,EAAUiE,YAAY3H,YAAY,YAClC0D,EAAUjE,QAAQO,YAAY,YAI1B0D,EAAUjE,QAAQK,KAAK,UACvB4D,EAAUjE,QAAQsB,WAAW,SAGjC2C,EAAUjE,QAAQ7M,QAAQ,oCAAoCoN,YAAY,YAE1E0D,EAAUjE,QAAQ7M,QAAQ,qBAAqBoN,YAAY,YAE3D0D,EAAS,OAAQmF,OAGjBnF,EAAUiE,YAAY7H,KAAK,CAAC,gBAAiB,UAC7C4D,EAAUjE,QAAQK,KAAK,CAAC,cAAe,SAGnC4D,EAAUoF,gBAAkBpF,EAAUoF,eAAetf,QAErDka,EAAUiE,YAAc/I,EACpB,wBAA0B8E,EAAUoF,eAAehJ,KAAK,qBAAuB,MAEnF4D,EAAUtE,KAAKzM,UAGmB,cAA9BgM,EAAMmB,KAAK,iBACXnB,EAAMoC,WAAW,eACjBnC,EAAE,cAAcoB,YAAY,gBAGhC0D,EAAUjE,SACViE,EAAUjE,QAAQL,KAAK,eAAe9M,OAE1CoR,EAAUiE,YAAYjX,QAAQ,mBAAoB,CAACgT,KAEvDA,EAAUqF,oBAEdlB,OAAQ,SAARA,SAG6B,MAArBnE,EAAUjE,SACViE,EAAU3E,GAAGM,SAIzBD,KAAM,CACFzM,OAAQ,SAARA,SAEI,GAAIiM,EAAE,uBAAuBpV,OAAQ,CACjCka,EAAUgE,SAAW9I,EAAE,uBACvB8E,EAAUjE,QAAUb,EAChB,sBAAwB8E,EAAUiE,YAAY7H,KAAK,sBAAwB,KAE/E4D,EAAUsE,SAAWtE,EAAUjE,QAC/B,IAAMuJ,EAAUtF,EAAUsE,SAAS7B,QAAQ,sBACvC6C,EAAQxf,OACRka,EAAUoF,eAAiBE,EAE3BtF,EAAUoF,eAAiB,KAE/BpF,EAAUtE,KAAK8E,WAGvBA,OAAQ,SAARA,SAGIR,EAAU8B,QAAU,KACpB9B,EAAUkE,SAAWhJ,EAAE,uBAEnB8E,EAAUkE,SAASpe,SACnBka,EAAUkE,SAASzI,MAAK,WACpB,IAAM8J,EAAUvF,EAAUiE,YAAY7H,KAAK,sBAG3C,IAAoC,IAFpBlB,EAAErO,MAAM/C,KAAK,gBAAgBiC,MAAM,KAErCpC,QAAQ4b,GAElB,OADAvF,EAAU8B,QAAU5G,EAAErO,OACf,KAIU,MAArBmT,EAAU8B,UACV9B,EAAUtE,KAAKmJ,aACf7E,EAAUtE,KAAK8J,gBAI3BA,WAAY,SAAZA,aAEQxF,EAAU8B,QAAQpG,KAAK,cAAc5V,SAAWka,EAAUjE,QAAQL,KAAK,cAAc5V,QACrFka,EAAUjE,QAAQ0J,UAAU,kCAGpCZ,WAAY,SAAZA,aAGI,IAAIa,EAAU1F,EAAU8B,QAAQ6D,cAC5BC,EAAU5F,EAAU8B,QAAQ+D,SAC5BC,EAAQF,EAAQG,KAChBC,EAAShG,EAAU8B,QAAQmE,aAC3BC,EAAS,GACTC,EAAmBP,EAEvB5F,EAAUoE,WAAalJ,EAAE,cACrB8E,EAAUoE,WAAWte,SACrBqgB,EAAmBnG,EAAUoE,WAAWyB,UAG5C,IACIO,EADmBD,EAAiBJ,KACF/F,EAAUoE,WAAWiC,QACvDC,EAAcN,EAASF,EAa3B,GAXI9F,EAAU8B,QAAQpG,KAAK,kBAAkB5V,SACzC4f,EAAU1F,EAAU8B,QAAQpG,KAAK,kBAAkBiK,eAGnD3F,EAAU8B,QAAQmE,eAAiBjG,EAAUiE,YAAYgC,eACzDD,EAAShG,EAAU8B,QAAQ3F,SAAS,iBAAmB,GAAK,OACxD6D,EAAUrB,WACVqH,EAAShG,EAAU8B,QAAQ3F,SAAS,iBAAmB,GAAK,SAIhEmK,EAAcF,EACdF,EAAS,CACLK,IAAKb,EACLc,MAAO,MACPH,MAAOL,OAER,CACHE,EAAS,CACLK,IAAKb,EACLW,MAAOL,GAEX,IAAIxB,EAAYxE,EAAU8B,QAAQhY,KAAK,iBAAmBkW,EAAUwE,UAEpE,OAAQA,GACJ,IAAK,OACL,IAAK,QACD0B,EAAO1B,GAAa,MACpB,MACJ,IAAK,SACD,IAAIqB,EAAS7F,EAAUjE,QAAQkK,aAAe,EAAIjG,EAAU8B,QAAQmE,aACpEC,EAAa,KAAI,eAAH7Y,OAAkBwY,EAAM,QAIlD7F,EAAUjE,QAAQ0K,IAAIP,KAG9BQ,OAAQ,CACJ5B,KAAM,SAANA,OAEI,OADA9E,EAAUqE,UAAYrE,EAAUiE,YAAY7H,KAAK,kBACzC4D,EAAUqE,WACd,IAAK,OACD,MACJ,IAAK,SACDrE,EAAUiE,YAAYvI,KAAK,KAAKa,SAAS,eACzC,MACJ,QACIyD,EAAUiE,YAAYvI,KAAK,KAAKa,SAASyD,EAAUqE,aAG/Dc,KAAM,SAANA,OACInF,EAAUjB,aAAatD,MAAK,WACxB,IAAIkL,EAAOzL,EAAErO,MAAMuP,KAAK,kBACxB,OAAQuK,GACJ,IAAK,OACD,MACJ,IAAK,SACD3G,EAAUiE,YAAYvI,KAAK,KAAKY,YAAY,eAC5C,MACJ,aACiBG,IAATkK,GAAoB3G,EAAUiE,YAAYvI,KAAK,KAAKY,YAAYqK,SAMxFzB,iBAAkB,SAAlBA,qBAEAG,iBAAkB,SAAlBA,sBAGJ1M,GAAGqH,UAAYA,G,kBCnTnB,IACQtD,EACAzB,EAEA2L,EAHAlK,EAAUxB,EAAE1E,QACZyE,EAAQC,EAAE,QAEV0L,EAAY,CACZpZ,QAAS,eACTqZ,gBAAiB,sBAEjBvX,KAAM,SAANA,OACIsX,EAAUpJ,cAEdA,WAAY,SAAZA,aACIvC,EAAMI,GAAG,QAASuL,EAAUpZ,SAAS,SAAUtI,GAC3CA,EAAEuJ,iBACFyM,EAAE,cAAc4L,QAAQ,CAACza,UAAW,GAAI,KACxC6O,EAAE1T,SAASuf,MAAMrL,KAAK,cAAcqJ,QAAQ9c,WAGhDyU,EAAQrB,GAAG,UAAU,WACbH,EAAE0L,EAAUC,iBAAiB/gB,SACzBoV,EAAErO,MAAMR,YAAc6O,EAAE,UAAUyG,SAClCzG,EAAE0L,EAAUC,iBAAiBtK,SAAS,2BAEtCrB,EAAE0L,EAAUC,iBAAiBvK,YAAY,iDAGzCpB,EAAErO,MAAMR,YAAc,KACtB6O,EAAE0L,EAAUC,iBAAiBtK,SAAS,yBAGtCqK,EAAUnJ,MAAMuJ,kBAChB9L,EAAE0L,EAAUC,iBAAiBtK,SAAS,uBAEtCrB,EAAE0L,EAAUC,iBAAiBvK,YAAY,4BAKzDmB,MAAO,CACHuJ,gBAAiB,SAAjBA,kBACI,IAAIC,EAAgB/L,EAAE1E,QAAQnK,YAAc6O,EAAE1E,QAAQmL,SAEtD,OADmBzG,EAAE,UAAU2K,SAASU,KACjBU,KAKnCtO,GAAGiO,UAAYA,G,8oCC5CnB,mC,+CACA,OADwB,eACxB,UADA,CAAwB,KAGxB,iF,OACI,EAAAvV,qCAAuC,2B,EAC3C,OAFwB,eAExB,UAFA,CAAwB,KAIxB,kC,+CAEA,OAFuB,cAEvB,SAFA,CAAuB,KAWvB,qC,+CAKA,OAL0B,iBAEZ,sBAAAiD,iBAAV,SAA2BL,GACvB,OAAO,SAAP,YAAY,YAAMK,iBAAgB,UAACL,IAAe,CAAEjG,SAAU,gBAHhEqK,YAAW,YADhB,YAAkBC,EAAWC,EAAUC,EAAW,MAC7CH,aAAN,CAA0B,KAQX,O,kBC7Bf,IACU6O,IAAgB,CAClB5X,KAAM,SAANA,OACI4L,EAAE,qBAAqBG,GAAG,SAAS,SAAUnW,GACzCA,EAAEuJ,iBACF,IAAM0Y,EAAe,IAAMjM,EAAErO,MAAM/C,KAAK,UACxCoR,EAAEiM,GAAczF,mBAI5B/I,GAAGuO,cAAgBA,G,mBCVvB,WACI,IACIE,EADAnM,EAAQC,EAAE,QAId,SAASmM,YAAYzL,GACjB,IAAI0L,EAAW1L,EAAK6G,QAAQ,oBAAoB,GAGhD,OAFe6E,EAAWpM,EAAEoM,GAAUxd,KAAK,aAAe,GAW9D,IAAMyd,EAAc,CAChBjY,KAAM,SAANA,OACIiY,EAAYhM,WAEhBA,QAAS,SAATA,UACIN,EAAMI,GAAG,QAAS,sCAAsC,WACpD,IAAI9J,EAAK2J,EAAErO,MAEX0a,EAAY/R,IAAIgL,OAAOjP,GACvBgW,EAAYlM,GAAGtL,OAAOyX,SAASjW,MAGnC0J,EAAMI,GAAG,QAAS,kBAAkB,WAChC,IAAI9J,EAAK2J,EAAErO,MACP4a,EAAWJ,YAAY9V,GAE3BgW,EAAY/R,IAAIgL,OAAOjP,GACvBgW,EAAYG,MAAMxb,OAAOub,OAGjCpM,GAAI,CACAtL,OAAQ,CACJyX,SAAU,SAAVA,SAAoB5L,GAChB,IAAI+L,EAAW/L,EAAK9R,KAAK,SACrB8d,EAAQhM,EAAK9R,KAAK,SAClB2d,EAAWJ,YAAYzL,GAE3B2L,EAAYG,MAAMvb,IAAIwb,EAAUC,EAAOH,MAInDC,MAAO,CACHvb,IAAK,SAALA,IAAe4H,EAAO3H,EAAIqb,GACtB,IAAII,EAAS,CACTC,kBAAmB,aACnBF,MAAOxb,EACPub,SAAU5T,EACViN,SAAUyG,GAGdF,EAAYpG,KAAK0G,IAErB3b,OAAQ,SAARA,OAAkBub,GACd,IAAII,EAAS,CACTC,kBAAmB,cACnB9G,SAAUyG,GAGdF,EAAYpG,KAAK0G,IAErBE,SAAU,SAAVA,WAMI7M,EAAE,uBAAuB8M,IAAI,0BAA0BC,SAAS,CAC5DC,MAAO,EACPC,KAAM,OACN5L,SAAU,eAGdrB,EAAE,6BAA6B8M,IAAI,0BAA0BC,SAAS,CAClEC,MAAO,EACPC,KAAM,OACN5L,SAAU,eAGdjO,YAjBA,SAAS8Z,WACLlN,EAAE,cAAchP,SAChBgP,EAAE,cAAcoB,YAAY,aAAaC,SAAS,iBAejC,MAG7B/G,IAAK,CACDgL,OAAQ,SAARA,OAAkB5E,GACdwL,EAAgBlM,EAAEU,EAAK6G,QAAQ,iBAAiB,MAGxDtB,KAAM,SAANA,KAAgB0G,GACZA,EAAkB,UAlF1B,SAASQ,eACL,IAAIC,EAAYpN,EAAE,sBAAsBkB,KAAK,WAC7C,OAAOkM,GAAwB,GAgFLD,GAEtBnN,EAAEiG,KAAK,CACHgH,KAAM,MACN3U,IAAK,sCACL+U,SAAU,OACVze,KAAM+d,EACNW,OAAO,EACPpH,QAAS,SAATA,QAAmBsC,GACf6D,EAAY1S,OAAO6O,GACnB6D,EAAYG,MAAMK,YAEtBzG,MAAO,SAAPA,MAAiBA,GACbmH,QAAQC,IAAIpH,OAIxBzM,OAAQ,SAARA,OAAkB6O,GACd0D,EAAc1D,KAAK,IACnB0D,EAAc/F,YAAYqC,KAIlC/K,GAAG4O,YAAcA,EAtHrB,I,kBCAArM,EAAE1T,UAAUmhB,OAAM,WAEdzN,EAAE1T,UAAU6T,GAAG,QAAS,4BAA4B,SAAU1O,GAC1DA,EAAM8B,iBACN9B,EAAM+X,kBACNxJ,EAAErO,MAAMqP,YAAY,UACpBhB,EAAE,4DAA4DgB,YAAY,UACtEhB,EAAE,gBAAgBoC,GAAG,aACrBsL,uBAIR1N,EAAE1T,UAAU6T,GAAG,SAAS,SAAUnW,GAEC,eAA3BgW,EAAEhW,EAAE+J,QAAQmN,KAAK,OACU,eAA3BlB,EAAEhW,EAAE+J,QAAQmN,KAAK,OAChBlB,EAAE,wCAAwCiB,SAAS,WAEpDjB,EAAE,wCAAwCqB,SAAS,aAK3DrB,EAAE,qDAAqDG,GAAG,sBAAsB,WAC3EH,EAAE,iDAAiD2N,MAAM/iB,OAEpDoV,EAAE,uCAAuCmC,WAAW,YADpDnC,EAAE,uCAAuCkB,KAAK,WAAY,eAKpElB,EAAE,0CAA0CkB,KAAK,WAAY,YAE7DlB,EAAE,wCAAwCG,GAAG,sBAAsB,WAC9DH,EAAErO,MAAMgc,MAAM/iB,OAEToV,EAAE,yCAAyCmC,WAAW,YADtDnC,EAAE,yCAAyCkB,KAAK,WAAY,eAKlElB,EAAE,oBACF5M,YAAW,WACP4M,EAAE,mBAAmBuL,IAAI,aAAc,aACxC,KAIPvL,EAAE,qCAAqCG,GAAG,sBAAsB,WAC3DH,EAAE,qCAAqC2N,MAAM/iB,OAExCoV,EAAE,sCAAsCmC,WAAW,YADnDnC,EAAE,sCAAsCkB,KAAK,WAAY,kBAiBvE5F,OAAOsS,oBAJP,SAASA,oBAAoBC,GACzB,IAAIxV,EAAO2H,EAAE6N,GAAWF,MACxBpS,SAASlD,KAAOA,I,gCC/DpB,SAAW2H,GACP,IAAI8N,EACJ,SAASC,cACL,IASIC,EATAC,EACI,2BACAtc,KAAKuc,SAASC,aACd,WACAxc,KAAKuc,SAASE,YACdzc,KAAKuc,SAASG,kBACd,eACA1c,KAAKuc,SAASI,YACd,UAgCR,OA7BI3c,KAAKuc,SAASK,YACdN,EAAUtc,KAAKuc,SAASK,YACjB5c,KAAKuc,SAASzK,WACrBwK,EACI,2BACAtc,KAAKuc,SAASC,aACd,WACAxc,KAAKuc,SAASE,YACdzc,KAAKuc,SAASG,kBACd,eACA1c,KAAKuc,SAASM,kBACd,WAIJR,EADArc,KAAKuc,SAASzK,UAAY9R,KAAK8c,UAE3B,+FACA9c,KAAKuc,SAASQ,aACd,2BACAT,EACA,OAEG,wEAA0EA,EAAU,OAGpE,OAAvBtc,KAAKgd,gBACLX,EAAO,OAASA,EAAO,SAGpBhO,EAAEgO,GAGb,SAASY,SAASC,GACd,IAAIb,EACA,KACCa,EAAS,aAAe,QACzB,sBACAld,KAAKuc,SAASC,aACd,OACCU,EAAS,IAAM,QAChB,IAIJ,MAH2B,OAAvBld,KAAKgd,gBACLX,EAAO,OAASA,EAAO,SAEpBhO,EAAEgO,GAGb,SAASc,eAAeC,GACpB,IAIIC,EACApI,EAEAqI,EAPEC,EAAOvd,KACPoT,EAAQ/E,EAAErO,MACZ8U,EAAS1B,EAAM0B,SACb0I,EAAYxd,KAAKuc,SAASlB,MAAQnT,KAAKC,KAAKsV,WAAWrK,EAAMwG,IAAI,iBAYvE,GALI0D,EADAtd,KAAKuc,SAASH,YACHA,YAAY9hB,KAAK0F,MAEjBid,SAAS3iB,KAAK0F,MAGzBod,EAAYM,IAAI,GAAGC,WAAaC,KAAKC,aAAc,CACnD,KAAO/I,EAAS0I,GAAaJ,EAAYU,WAAW7kB,QAChDokB,EAAeD,EAAYU,WAAWC,OAAO1e,SAC7CyV,EAAS1B,EAAM0B,SAGnB,GAAIA,GAAU0I,GAAaH,EACa,KAAhChP,EAAElD,KAAKkS,EAAa7H,SACpB4H,EAAYriB,OAAOsiB,IACnBvI,EAAS1B,EAAM0B,UACF0I,GACTL,eAAe7iB,KAAK0F,KAAMqd,KAG9BjK,EAAMrY,OAAOuiB,GACTtd,KAAKuc,SAAS7M,WAAa0D,EAAM9D,SAAStP,KAAKuc,SAAS7M,WACxDjO,YAAW,WACP2R,EAAM1D,SAAS6N,EAAKhB,SAAS7M,YAC9B,GAEP0D,EAAMnW,KAAK,kBAAkB,GAC7BsgB,EAAKhB,SAASyB,mBAEf,GAAmC,KAA/B3P,EAAElD,KAAKiS,EAAY5H,QAI1B,GAHAP,EAAUmI,EAAYzJ,SACtByJ,EAAY/d,SACZyV,EAAS1B,EAAM0B,SACgB,KAA3BzG,EAAElD,KAAK8J,EAAQO,QACf2H,eAAe7iB,KAAK0F,KAAMiV,QACvB,GAAIH,GAAU0I,EAAW,CAC5B,GAAIpK,EAAM5J,WAAWvQ,OAAQ,CACzB,IAAMglB,EAAa7K,EAAM5J,WAAWuU,OAChCE,EAAWxN,GAAG,MACdwN,EAAW3N,MAAMgN,GAEjBW,EAAWtK,SAAS5Y,OAAOuiB,QAG/BlK,EAAMrY,OAAOuiB,GAEbtd,KAAKuc,SAAS7M,WAAa0D,EAAM9D,SAAStP,KAAKuc,SAAS7M,WACxDjO,YAAW,WACP2R,EAAM1D,SAAS6N,EAAKhB,SAAS7M,YAC9B,GAEP0D,EAAMnW,KAAK,kBAAkB,GAC7BsgB,EAAKhB,SAASyB,kBAGnB,CACH,IAAME,EAAcd,EAAY5H,OAC5B2I,EAAM,EACNC,EAAMF,EAAYjlB,OAAS,EAC3BolB,EAAMnW,KAAKoW,OAAOH,EAAMC,GAAO,GAGnC,IAFAnJ,EAAUmI,EAAYzJ,SAEfwK,EAAMC,GAAK,CAad,GAZItJ,EAAS0I,EAETY,EAAMC,EAAMjT,UAAWgT,EAAMC,GAAOb,EAAa1I,EAAQ,IAEzDqJ,EAAME,EAAM,EAEhBf,EAASje,SACTgf,EAAMnW,KAAKoW,OAAOH,EAAMC,GAAO,GAC/BhB,EAAYM,IAAI,GAAGQ,YAAcA,EAAYK,OACzC,EACAve,KAAKuc,SAASiC,eAAiBH,EAAMnW,KAAKiW,IAAIE,EAAKH,EAAYO,YAAY,IAAKJ,KAErD,KAA3BhQ,EAAElD,KAAK8J,EAAQO,QAEf,YADA2H,eAAe7iB,KAAK0F,KAAMiV,GAG9BmI,EAAYzJ,SAAS5Y,OAAOuiB,GAC5BxI,EAAS1B,EAAM0B,SAGnB,KAAOA,EAAS0I,GAAaa,EAAM,GAAG,CAOlC,GANAf,EAASje,SACTgf,GAAY,EACZjB,EAAYM,IAAI,GAAGQ,YAAcA,EAAYK,OACzC,EACAve,KAAKuc,SAASiC,eAAiBH,EAAMnW,KAAKiW,IAAIE,EAAKH,EAAYO,YAAY,IAAKJ,KAErD,KAA3BhQ,EAAElD,KAAK8J,EAAQO,QAEf,YADA2H,eAAe7iB,KAAK0F,KAAMiV,GAG9BmI,EAAYzJ,SAAS5Y,OAAOuiB,GAC5BxI,EAAS1B,EAAM0B,SAEP,IAARuJ,IACAf,EAASje,SACsB,KAA3BgP,EAAElD,KAAK8J,EAAQO,SACf2H,eAAe7iB,KAAK0F,KAAMiV,IAI9BH,GAAU0I,IACNxd,KAAKuc,SAAS7M,WAAa0D,EAAM9D,SAAStP,KAAKuc,SAAS7M,WACxDjO,YAAW,WACP2R,EAAM1D,SAAS6N,EAAKhB,SAAS7M,YAC9B,GAEP0D,EAAMnW,KAAK,kBAAkB,GAC7BsgB,EAAKhB,SAASyB,eAK1B,SAASU,eACL,IAAMnB,EAAOvd,KACPoT,EAAQ/E,EAAErO,MACV8U,EAAS1B,EAAM0B,SACf0I,EAAYxd,KAAKuc,SAASlB,MAAQoC,WAAWrK,EAAMwG,IAAI,gBAC5CxG,EAAM/Q,QAAQ,kBAAkBpJ,QAEvB,IAAX6b,EAOXA,EAAS0I,EACTL,eAAe7iB,KAAK0F,KAAMoT,IAE1B3R,YAAW,WACP2R,EAAM1D,SAAS6N,EAAKhB,SAAS7M,YAC9B,GACH0D,EAAMnW,KAAK,kBAAkB,GAC7BsgB,EAAKhB,SAASyB,cAbdvc,YAAW,WACPid,aAAapkB,KAAKijB,KACnB,IAeX,SAASoB,oBACL,IAWItC,EAXAC,EACI,2BACAtc,KAAKuc,SAASC,aACd,WACAxc,KAAKuc,SAASE,YACdzc,KAAKuc,SAASG,kBACd,eACA1c,KAAKuc,SAASI,YACd,kCACA3c,KAAKuc,SAASC,aACd,WAkCR,OA/BIxc,KAAKuc,SAASK,YACdN,EAAUtc,KAAKuc,SAASK,YACjB5c,KAAKuc,SAASzK,WACrBwK,EACI,2BACAtc,KAAKuc,SAASC,aACd,WACAxc,KAAKuc,SAASE,YACdzc,KAAKuc,SAASG,kBACd,cACA1c,KAAKuc,SAASM,kBACd,iCACA7c,KAAKuc,SAASC,aACd,YAIJH,EADArc,KAAKuc,SAASzK,SAEV,gGACA9R,KAAKuc,SAASQ,aACd,2BACAT,EACA,OAEG,wEAA0EA,EAAU,OAGpE,OAAvBtc,KAAKgd,gBACLX,EAAO,OAASA,EAAO,SAGpBhO,EAAEgO,GAGb,SAASuC,wBACL,IAEI9J,EAGAwI,EAEAuB,EACAxB,EAREE,EAAOvd,KACPoT,EAAQ/E,EAAErO,MAEV8e,EAAa5W,KAAKC,KAAKD,KAAKkW,IAAIhL,EAAM5J,WAAWsL,SAAU2I,WAAWrK,EAAMwG,IAAI,kBAChF4D,EAAYxd,KAAKuc,SAASlB,MAAQyD,EAEpCC,EAAe,EAGbC,GAAW5L,EAAM/Q,QAAQ,kBAAkBpJ,OAG7CqkB,EADAtd,KAAKuc,SAASH,YACHuC,kBAAkBrkB,KAAK0F,MAEvBid,SAAS3iB,KAAK0F,MAAM,GAGnC,IAAMif,EAAc,SAAdA,cAEF,GADAnK,EAAS1B,EAAM0B,SACVkK,EACL,GAAIlK,EAAS0I,EAAW,CACpB,KAAO1I,EAAS0I,GAAapK,EAAM0K,WAAW7kB,OAAS,GAAG,CACtDqkB,EAASje,SACLwf,GAAiBzL,EAAMvE,KAAKgQ,GAAe5lB,QAC3C4lB,EAAcxf,SAElB,IAAI6f,EAAgBhX,KAAKoW,MAAMlL,EAAM0K,WAAW7kB,OAAS,IAEzDokB,EAAehP,EAAE+E,EAAM0K,WAAWJ,IAAIwB,IAAgB7f,WAClCge,EAAaK,IAAI,GAAGC,WAAaC,KAAKC,eAChB,OAAlCN,EAAKhB,SAAS4C,iBACT9B,EAAa5M,GAAG8M,EAAKhB,SAAS4C,mBAInCJ,GAAgB,IAGxBG,GAAiB,GACjBpK,EAAS1B,EAAM0B,UAEF0I,GAAapK,EAAM0K,WAAW7kB,OAAS,KAChDokB,EAAehP,EAAE+E,EAAM0K,WAAWJ,IAAIwB,IAAgB7f,WAClCge,EAAaK,IAAI,GAAGC,WAAaC,KAAKC,eAChB,OAAlCN,EAAKhB,SAAS4C,iBACT9B,EAAa5M,GAAG8M,EAAKhB,SAAS4C,mBAInCJ,GAAgB,IAGxBG,GAAiB,GAEjB3B,EAAKhB,SAAS6C,kBAAoBL,EAAe,GACjDF,EAAgBxQ,EAAEgR,GAAGjE,SAASkE,mBAAmBP,IACnCQ,YAAYlR,EAAE+E,EAAM0K,WAAWJ,IAAIwB,KAEjD5B,EAASiC,YAAYlR,EAAE+E,EAAM0K,WAAWJ,IAAIwB,KAGhDpK,EAAS1B,EAAM0B,SAEnBrT,WAAWwd,EAAa,UAEpB1B,EAAKhB,SAAS7M,WAAa0D,EAAM9D,SAASiO,EAAKhB,SAAS7M,WACxDjO,YAAW,WACP2R,EAAM1D,SAAS6N,EAAKhB,SAAS7M,YAC9B,GAEP0D,EAAMnW,KAAK,kBAAkB,GAC7BsgB,EAAKhB,SAASyB,cAItBiB,IAGJ,SAASO,qBACL,IAEI1K,EAGAwI,EAEAuB,EACAxB,EARAE,EAAOvd,KACPoT,EAAQ/E,EAAErO,MAEV8e,EAAa5W,KAAKC,KAAKD,KAAKkW,IAAIhL,EAAM5J,WAAWsL,SAAU2I,WAAWrK,EAAMwG,IAAI,kBAChF4D,EAAYxd,KAAKuc,SAASlB,MAAQyD,EAElCC,EAAe,EAGfC,GAAW5L,EAAM/Q,QAAQ,kBAAkBpJ,OAG3CqkB,EADAtd,KAAKuc,SAASH,YACHA,YAAY9hB,KAAK0F,MAEjBid,SAAS3iB,KAAK0F,MAG7B,IAAMif,EAAc,SAAdA,cAEF,GADAnK,EAAS1B,EAAM0B,SACVkK,EACL,GAAIlK,EAAS0I,EAAW,CACpB,KAAO1I,EAAS0I,GAAapK,EAAM0K,WAAW7kB,OAAS,GAC/C4lB,GAAiBzL,EAAMvE,KAAKgQ,GAAe5lB,QAC3C4lB,EAAcxf,SAEd+T,EAAMvE,KAAKyO,GAAUrkB,OACrBokB,EAAehP,EAAE+E,EAAM0K,WAAWJ,IAAItK,EAAM0K,WAAW7kB,OAAS,IAAIoG,UAEpEge,EAAejK,EAAM0K,WAAWC,OAAO1e,SAElCke,EAAKhB,SAAS6C,kBACfhM,EAAMrY,OAAOuiB,IAGjBD,GAAgBA,EAAaK,IAAI,GAAGC,WAAaC,KAAKC,eAChB,OAAlCN,EAAKhB,SAAS4C,iBACT9B,EAAa5M,GAAG8M,EAAKhB,SAAS4C,mBAInCJ,GAAgB,IAIpBxB,EAAKhB,SAAS6C,kBAAoBL,EAAe,IACjDF,EAAgBxQ,EAAEgR,GAAGjE,SAASkE,mBAAmBP,GACjD3L,EAAMrY,OAAO8jB,IAGjB/J,EAAS1B,EAAM0B,SAEnBrT,WAAWwd,EAAa,UAEpB1B,EAAKhB,SAAS7M,WAAa0D,EAAM9D,SAASiO,EAAKhB,SAAS7M,WACxDjO,YAAW,WACP2R,EAAM1D,SAAS6N,EAAKhB,SAAS7M,YAC9B,GAEP0D,EAAMnW,KAAK,kBAAkB,GAC7BsgB,EAAKhB,SAASyB,cAItBiB,IAGJ,SAASQ,qCACL,IAIInC,EAEAuB,EACAa,EACAC,EAREpC,EAAOvd,KACToT,EAAQ/E,EAAErO,MACV4f,EAASxM,EAAM5J,WAGfuV,EAAea,EAAO3mB,OAAS,EAK/B2mB,EAAO3mB,OAAS,IAChBymB,EAAYE,EAAOC,GAAG,GAAGtJ,QACzBoJ,EAAWC,EAAOC,GAAGD,EAAO3mB,OAAS,GAAGsd,QAEpC+G,EADAtd,KAAKuc,SAASH,YACHuC,kBAAkBrkB,KAAK0F,MAEvBid,SAAS3iB,KAAK0F,MAAM,GAG/Bud,EAAKhB,SAAS6C,mBACdP,EAAgBxQ,EAAEgR,GAAGjE,SAASkE,mBAAmBP,IAGrD3L,EAAMyD,KAAK,IACXzD,EAAMrY,OAAO2kB,GACTnC,EAAKhB,SAAS6C,kBAAoBL,EAAe,EACjD3L,EAAMrY,OAAO8jB,GAEbzL,EAAMrY,OAAOuiB,GAEjBlK,EAAMrY,OAAO4kB,IAEbpC,EAAKhB,SAAS7M,WAAa0D,EAAM9D,SAASiO,EAAKhB,SAAS7M,WACxDjO,YAAW,WACP2R,EAAM1D,SAAS6N,EAAKhB,SAAS7M,YAC9B,GAEP0D,EAAMnW,KAAK,kBAAkB,GAC7BsgB,EAAKhB,SAASyB,aAGlB,SAAS8B,4BACL,IAOIjB,EACAxB,EARAE,EAAOvd,KACPoT,EAAQ/E,EAAErO,MACV8U,EAAS1B,EAAM0B,SACfgK,EAAa5W,KAAKC,KAAKD,KAAKkW,IAAIhL,EAAM5J,WAAWsL,SAAU2I,WAAWrK,EAAMwG,IAAI,kBAChF4D,EAAYxd,KAAKuc,SAASlB,MAAQyD,EAClCiB,EAAepB,kBAAkBrkB,KAAK0F,MACtC+e,EAAe,EAGfC,GAAW5L,EAAM/Q,QAAQ,kBAAkBpJ,OAE3CgmB,EAAc,SAAdA,cAEA,GADAnK,EAAS1B,EAAM0B,SACVkK,EACL,GAAIlK,EAAS0I,EAAW,CAEpB,IADA,IAAMwC,EAAc3R,EAAE,eAEjB+E,EAAM5J,WAAWvQ,OAAS,GAAK+mB,EAAYxW,WAAWvQ,OAASskB,EAAKhB,SAAS0D,gBAC9E7M,EAAM0K,WAAWC,OAAOL,IAAI,GAAGC,WAAaC,KAAKsC,WAEjDF,EAAYG,QAAQ/M,EAAM0K,WAAWC,OAAO1e,UAGhD,IADA,IAAM+gB,EAAqBJ,EAAYlC,WAChChJ,EAAS0I,GAAapK,EAAM5J,WAAWvQ,OAAS,GAC/C4lB,GAAiBzL,EAAMvE,KAAKgQ,GAAe5lB,QAC3C4lB,EAAcxf,SAElB0gB,EAAa1gB,SACb+gB,EAAmB/gB,UACnBge,EAAejK,EAAM0K,WAAWC,OAAO1e,WACnBge,EAAaK,IAAI,GAAGC,WAAaC,KAAKC,eAChB,OAAlCN,EAAKhB,SAAS4C,iBACT9B,EAAa5M,GAAG8M,EAAKhB,SAAS4C,mBAInCJ,GAAgB,IAGpBxB,EAAKhB,SAAS6C,kBAAoBL,EAAe,GACjDF,EAAgBxQ,EAAEgR,GAAGjE,SAASkE,mBAAmBP,GACjD3L,EAAMrY,OAAO8jB,IAEbzL,EAAMrY,OAAOglB,GAEjB3M,EAAMrY,OAAOqlB,GACbtL,EAAS1B,EAAM0B,SAEnBrT,WAAWwd,EAAa,UAEpB1B,EAAKhB,SAAS7M,WAAa0D,EAAM9D,SAASiO,EAAKhB,SAAS7M,WACxDjO,YAAW,WACP2R,EAAM1D,SAAS6N,EAAKhB,SAAS7M,YAC9B,GAEP0D,EAAMnW,KAAK,kBAAkB,GAC7BsgB,EAAKhB,SAASyB,cAItBiB,IAGJ,SAASoB,eACL,IAAI9C,EAAOvd,KACPoT,EAAQ/E,EAAErO,MACV8U,EAAS1B,EAAM0B,SACfgK,EAAa5W,KAAKC,KAAKD,KAAKkW,IAAIhL,EAAM5J,WAAWsL,SAAU2I,WAAWrK,EAAMwG,IAAI,kBAChF4D,EAAYxd,KAAKuc,SAASlB,MAAQyD,EAClCE,GAAW5L,EAAM/Q,QAAQ,kBAAkBpJ,OAE/C,GAAgC,IAA5Bma,EAAM5J,WAAWvQ,OAIjB,OAHAma,EAAM1D,SAAS6N,EAAKhB,SAAS7M,UAC7B0D,EAAMnW,KAAK,kBAAkB,QAC7BsgB,EAAKhB,SAASyB,aAIlB,IAAIgB,GAAuB,IAAXlK,GAA8B,IAAd0I,EAOhC,OAAQxd,KAAKuc,SAASpb,UAClB,IAAK,SACG2T,EAAS0I,EACToB,sBAAsBtkB,KAAK0F,KAAMoT,IAE7BpT,KAAKuc,SAAS7M,WAAa0D,EAAM9D,SAAStP,KAAKuc,SAAS7M,WACxDjO,YAAW,WACP2R,EAAM1D,SAAS6N,EAAKhB,SAAS7M,YAC9B,GAEP0D,EAAMnW,KAAK,kBAAkB,GAC7BsgB,EAAKhB,SAASyB,cAElB,MACJ,IAAK,MACGlJ,EAAS0I,EACTgC,mBAAmBllB,KAAK0F,KAAMoT,IAE1BpT,KAAKuc,SAAS7M,WAAa0D,EAAM9D,SAAStP,KAAKuc,SAAS7M,WACxDjO,YAAW,WACP2R,EAAM1D,SAAS6N,EAAKhB,SAAS7M,YAC9B,GAEP0D,EAAMnW,KAAK,kBAAkB,GAC7BsgB,EAAKhB,SAASyB,cAElB,MACJ,IAAK,sBACDyB,mCAAmCnlB,KAAK0F,KAAMoT,GAC9C,MACJ,IAAK,aACG0B,EAAS0I,EACTsC,0BAA0BxlB,KAAK0F,KAAMoT,IAEjCpT,KAAKuc,SAAS7M,WAAa0D,EAAM9D,SAAStP,KAAKuc,SAAS7M,WACxDjO,YAAW,WACP2R,EAAM1D,SAAS6N,EAAKhB,SAAS7M,YAC9B,GAEP0D,EAAMnW,KAAK,kBAAkB,GAC7BsgB,EAAKhB,SAASyB,mBA9CtBvc,YAAW,WACP4e,aAAa/lB,KAAKijB,KACnB,IAkDX,SAAS+C,cACL,IAQIjE,EARAkE,GACKvgB,KAAKuc,SAASiE,iBACT,2BAA6BxgB,KAAKuc,SAASC,aAAe,WAC1D,UACNxc,KAAKuc,SAASkE,YACd,cACAzgB,KAAKuc,SAASmE,YACd,SAaR,OAVI1gB,KAAKuc,SAASoE,cACdJ,EAAUvgB,KAAKuc,SAASoE,aAG5BtE,EAAO,uEAAyEkE,EAAU,OAE/D,OAAvBvgB,KAAKgd,gBACLX,EAAO,OAASA,EAAO,SAGpBhO,EAAEgO,GAGb,SAASuE,mBACL,IAAIC,EACAC,EACEvD,EAAOvd,KACPoT,EAAQ/E,EAAErO,MACZ+gB,EAAc,CAAC,EAAG,IAClBC,GAAqB,EAErBzD,EAAKhB,SAAS0E,uBACdF,EAAc,CAAC,EAAG,GAAI,KAGtBxD,EAAKhB,SAAS2E,YACdJ,GAAc,GAGlB1N,EAAM5E,GAAG,8BAA8B,SAAU2S,GAC7C,SAASC,WACLD,EAAIvf,iBACJ,IAAMyf,EAAkBjO,EAAM5J,WAAWvQ,OACzCma,EAAMnW,KAAK,mBAAoBmW,EAAMyD,QACrCzD,EAAMyD,KAAKzD,EAAMnW,KAAK,oBACtB,IAAMqkB,EAAWhB,YAAYhmB,KAAKijB,GAGlC,GAFAnK,EAAMrY,OAAOumB,GAET/D,EAAKhB,SAAS2E,UAAW,CACzB9N,EAAMwG,IAAI,SAAU,QACpB,IAAM2H,EAAanO,EAAM0F,aAAY,GACrC1F,EAAM0B,OAAO+L,GAAgB5G,QAAQ,CAACnF,OAAQyM,GAAa,KAC3D9f,YAAW,WACP2R,EAAMwG,IAAI,SAAU,UACrB,KAGU,YAAbuH,EAAI7F,OAC2B,OAA3BlI,EAAM,GAAG4J,cACT5J,EACK5J,WACAqW,GAAGwB,EAAkB,GACrBxS,KAAK,KACL1O,QAAQ,SAEbmhB,EAASlmB,SA0BrB,KAAiB,YAAb+lB,EAAI7F,MAAsByF,EAAYjkB,QAAQqkB,EAAIxf,SAAW,KAK7D4b,EAAKhB,SAAS0E,uBACdD,EAAqC,IAAhBG,EAAIxf,SAGzB4b,EAAKhB,SAAS2E,WACVJ,IACAD,EAAiBzN,EAAM0F,aAAY,GACnCgI,GAAc,GAIlB1N,EAAMnW,KAAK,mBAAqB+jB,GAAoB,CACpD,IAAMQ,EAAanT,EAAE8S,EAAI/e,QACrBof,EAAWlS,SAAS,aAAekS,EAAW/Q,GAAG,MAEjD2Q,YAICI,EAAWlS,SAAS,eAAiBkS,EAAWlS,SAAS,iBACzDkS,EAAW7N,SAASrE,SAAS,eAAiBkS,EAAW7N,SAASrE,SAAS,iBAC5EkS,EAAWlS,SAAS,yBAGpB8R,YAGAI,EAAWlS,SAAS,cAAgBkS,EAAW7N,SAASrE,SAAS,eArDzE,SAASmS,WACe,IAAhBN,EAAIxf,UAIJwf,EAAIvf,iBAGJ2b,EAAKhB,SAAS2E,WACd9N,EAAM6G,QAAQ,CAACnF,OAAQ+L,GAAiB,KACxCpf,YAAW,WACP2R,EAAMyD,KAAKzD,EAAMnW,KAAK,uBACvB,MAEHmW,EAAMyD,KAAKzD,EAAMnW,KAAK,qBAG1BmW,EAAMvE,KAAK,cAAczT,SAsCrBqmB,OAKPpT,EAAE1T,UAAUsC,KAAK,2BAClBoR,EAAE1T,UAAUsC,KAAK,wBAAyB,OAC1CoR,EAAE1T,UAAU6T,GAAG,wBAAwB,SAAU2S,EAAKlkB,GAClDwE,YAAW,WACP4M,EAAE,oBAAqBpR,EAAKykB,OAAOtG,aACpC,QAKf,SAASuG,iBACL,IAAIvO,EAAQ/E,EAAErO,MACVoT,EAAMnW,KAAK,qBACXmW,EAAMyD,KAAKzD,EAAMnW,KAAK,oBAClB+C,KAAKuc,UAAYvc,KAAKuc,SAAS7M,UAC/B0D,EAAM3D,YAAYzP,KAAKuc,SAAS7M,WAK5C,SAASkS,gBACL,IAAIxO,EAAQ/E,EAAErO,MACVA,KAAKuc,SAAS6C,kBACdhM,EAAMgI,SAAS,WAIdpb,KAAKuc,SAASzK,UAA6C,YAAjC9R,KAAKuc,SAASsF,iBACvC7hB,KAAKuc,SAASzK,UAA6C,WAAjC9R,KAAKuc,SAASsF,eAE1CF,eAAernB,KAAK0F,OAIpBoT,EAAM/Q,QAAQ,cAAcpJ,QAAWma,EAAM/Q,QAAQ,cAAciN,SAAS,WAI5E8D,EAAM3D,YAAY,oBAGlBzP,KAAKuc,UAAmC,SAAvBvc,KAAKuc,SAASjB,KAC/BoD,aAAapkB,KAAK0F,MACXA,KAAKuc,UAAmC,SAAvBvc,KAAKuc,SAASjB,OACtCtb,KAAKgd,cAAgB5J,EAAMsK,IAAI,GAAGoE,QAClCzB,aAAa/lB,KAAK0F,QAVlBoT,EAAM1D,SAAS,oBAcvB,SAASqS,wBACL,IAAIxE,EAAOvd,KAEX,SAASgiB,mBACLzE,EAAKhB,SAASzK,UAAW,EACzB8P,cAActnB,KAAKijB,GAGvB,SAAS0E,oBACL1E,EAAKhB,SAASzK,UAAW,EACzB8P,cAActnB,KAAKijB,GAGnBvd,KAAKkiB,YAEL7T,EAAE1T,UAAUoW,IAAI/Q,KAAKkiB,UAAY,MAAOF,kBACxC3T,EAAE1T,UAAUoW,IAAI/Q,KAAKkiB,UAAY,OAAQD,oBAG7C5T,EAAE1T,UAAU6T,GAAGxO,KAAKuc,SAASlK,MAAQ,MAAO2P,kBAC5C3T,EAAE1T,UAAU6T,GAAGxO,KAAKuc,SAASlK,MAAQ,OAAQ4P,mBAE7CjiB,KAAKkiB,UAAYliB,KAAKuc,SAASlK,MAGnC8J,EAAU,CACN1Z,KAAM,SAANA,KAAgBW,GACZ,OAAOpD,KAAK4O,MAAK,WACb,IAAIwE,EAAQ/E,EAAErO,MACVmiB,GAAY,EACZ/O,EAAMnW,KAAK,oBACPmW,EAAMnW,KAAK,cACX+C,KAAKuc,SAAWnJ,EAAMnW,KAAK,aAE/B0kB,eAAernB,KAAK0F,MACpBmiB,GAAY,GAEZ/O,EAAMnW,KAAK,kBAAmBmW,EAAMyD,QAIxC,IAAMuL,EAAkB,GA4BxB,GA3BIhP,EAAMnW,KAAK,oBACXmlB,EAAgB/G,MAAQjQ,SAASgI,EAAMnW,KAAK,kBAAmB,KAE/DmW,EAAMnW,KAAK,mBACXmlB,EAAgB9G,KAAOlI,EAAMnW,KAAK,kBAElCmW,EAAMnW,KAAK,uBACXmlB,EAAgBjhB,SAAWiS,EAAMnW,KAAK,2BAEe,IAA9CmW,EAAMnW,KAAK,iCAClBmlB,EAAgBhD,iBAAmBhM,EAAMnW,KAAK,qCAEE,IAAzCmW,EAAMnW,KAAK,4BAClBmlB,EAAgBhG,YAAchJ,EAAMnW,KAAK,2BAEzCmW,EAAMnW,KAAK,4BACXmlB,EAAgB3F,YAAcrJ,EAAMnW,KAAK,2BAEzCmW,EAAMnW,KAAK,4BACXmlB,EAAgB3B,YAAcrN,EAAMnW,KAAK,2BAEzCmW,EAAMnW,KAAK,4BACXmlB,EAAgBxF,YAAcxJ,EAAMnW,KAAK,2BAEzCmW,EAAMnW,KAAK,4BACXmlB,EAAgBzB,YAAcvN,EAAMnW,KAAK,2BAEzCmW,EAAMnW,KAAK,iCAAkC,CAC7C,IAAIolB,EAAiBjP,EAAMnW,KAAK,iCAChCmlB,EAAgB1F,kBAAoB2F,EAAc,0BAAA7hB,OAClB6hB,EAAc,YACxC,QAEND,EAAgB1F,kBAAoB,GAEpCtJ,EAAMnW,KAAK,4BACXmlB,EAAgB5F,aAAepJ,EAAMnW,KAAK,2BAE1CmW,EAAMnW,KAAK,+BACXmlB,EAAgBnC,eAAiB7U,SAASgI,EAAMnW,KAAK,6BAA8B,KAEnFmW,EAAMnW,KAAK,4BACXmlB,EAAgBrF,aAAe3J,EAAMnW,KAAK,2BAE1CmW,EAAMnW,KAAK,wBACXmlB,EAAgB1S,SAAW0D,EAAMnW,KAAK,uBAEtCmW,EAAMnW,KAAK,oBACXmlB,EAAgB/P,MAAQe,EAAMnW,KAAK,mBAEnCmW,EAAMnW,KAAK,8BACXmlB,EAAgBP,eAAiBzO,EAAMnW,KAAK,kCAEO,IAA5CmW,EAAMnW,KAAK,+BAClBmlB,EAAgB5D,eAAiBpL,EAAMnW,KAAK,mCAES,IAA9CmW,EAAMnW,KAAK,iCAClBmlB,EAAgB5B,iBAAmBpN,EAAMnW,KAAK,gCAGlD+C,KAAKuc,SAAWlO,EAAEiU,OAAO,GAAItiB,KAAKuc,UAAYlO,EAAEgR,GAAGjE,SAASmH,SAAUH,EAAiBhf,GAAW,IAClGgQ,EAAMnW,KAAK,WAAY+C,KAAKuc,UAC5BnJ,EAAMnW,KAAK,kBAAkB,GAC7B2kB,cAActnB,KAAK0F,MAEfmiB,GACAvB,iBAAiBtmB,KAAK0F,MAG1B+hB,sBAAsBznB,KAAK0F,UAGnCwiB,QAAS,SAATA,UACI,OAAOxiB,KAAK4O,MAAK,WACb+S,eAAernB,KAAK0F,WAKhCqO,EAAEgR,GAAGjE,SAAW,SAAUqH,GACtB,OAAItG,EAAQsG,GACDtG,EAAQsG,GAAQ1pB,MAAMiH,KAAMjG,MAAMJ,UAAUY,MAAMD,KAAKtB,UAAW,IAChD,WAAlBQ,EAAOipB,IAAwBA,OAGtCpU,EAAEoG,MAAM,UAAYgO,EAAS,sCAFtBtG,EAAQ1Z,KAAK1J,MAAMiH,KAAMhH,YAMxCqV,EAAEgR,GAAGjE,SAASkE,mBAAqB,SAAUoD,GACzC,OAAOrU,EAAE,+DAAiEqU,EAAQ,UAItFrU,EAAEgR,GAAGjE,SAASmH,SAAW,CACrBjH,KAAM,OACNna,SAAU,MACVie,kBAAkB,EAClB/D,MAAO,EACPe,aAAa,EACbK,YAAa,WACbgE,YAAa,WACb9D,YAAa,uBACb+D,YAAa,uBACb7D,kBAAmB,eACnBD,YAAa,GACb+D,YAAa,GACbnE,aAAc,WACdgE,kBAAkB,EAClBP,eAAgB,EAChBnO,UAAU,EACVgL,WAAW,EACXC,aAAc,GACd8E,eAAgB,MAChBnS,SAAU,GACV2C,MAAO,YACPmM,gBAAgB,EAChB0C,WAAW,EACX/B,gBAAiB,KACjB8B,sBAAsB,EACtBjD,WAAY,SAAZA,gBA15BR,CA45BG2E,S,kBC35BC7W,GAAG8W,aAAe,CACdngB,KAAM,SAANA,OACI4L,EAAE,yBAAyB8M,IAAI,0BAA0BC,SAAS,CAC9DC,MAAO,EACP3L,SAAU,eAGdrB,EAAE,uBAAuB8M,IAAI,0BAA0BC,SAAS,CAC5DC,MAAO,EACPC,KAAM,OACN5L,SAAU,eAGdrB,EAAE,0DAA0D8M,IAAI,0BAA0BC,SAAS,CAC/FC,MAAO,EACP3L,SAAU,eAGdrB,EAAE,+BAA+B8M,IAAI,0BAA0BC,SAAS,CACpEC,MAAO,EACP3L,SAAU,eAGdrB,EAAE,6BAA6B8M,IAAI,0BAA0BC,SAAS,CAClEC,MAAO,EACPC,KAAM,OACN5L,SAAU,eAGdrB,EAAE1E,QAAQ6E,GAAG,6BAA6B,WACtCH,EAAE,8CAA8C8M,IAAI,0BAA0BC,iB,kBC/B9F,IACQyH,IAAY,CACZ3T,QAASb,EAAE,iBAEX5L,KAAM,SAANA,OACIogB,EAAUzH,YAGdA,SAAU,SAAVA,WACIyH,EAAU3T,QAAQN,MAAK,WACnBP,EAAErO,MAAMob,gBAKpBtP,GAAG+W,UAAYA,G,kBCfnB,IACUC,IAAQ,CACVC,KAAM,KACN1Q,MAAO,YACP5P,KAAM,SAANA,OACI,IAAMugB,EAAa3U,EAAE,eACjB2U,EAAW/pB,OACX+pB,EAAWpU,MAAK,WACZ,IAAIqU,EAAU5U,EAAErO,MAAMwV,OAClBjW,EAAK8O,EAAErO,MAAMuP,KAAK,MACtBlB,EAAE,uCAAyC9O,EAAK,WAAa0jB,EAAU,oBAAoBC,SACvF,sBAIR7U,EAAE,kCAAkChP,SAExCyjB,EAAMC,KAAO1U,EAAE,sEACfyU,EAAMpU,UACNoU,EAAMK,qBAEVzU,QAAO,SAAPA,UACIL,EAAE1E,QAAQ6E,GAAG,0BAA0B,SAAU1O,GAC7CgjB,EAAM1H,cAGV/M,EAAE1T,UAAU6T,GAAGsU,EAAMzQ,MAAQ,OAAO,WAEhCyQ,EAAMhR,UAAW,EACjBgR,EAAM1H,cAGV/M,EAAE1T,UAAU6T,GAAGsU,EAAMzQ,MAAQ,QAAQ,WAEjCyQ,EAAMhR,UAAW,EACjBgR,EAAM1H,eAGd+H,kBAAiB,SAAjBA,sBACA/H,SAAQ,SAARA,WACI,IACI0H,EAAMC,KAAK5H,IAAI,0BAA0BC,SAAS,CAC9CC,MAAO,EACPC,KAAM,OACNc,aAAa,EACbK,YAAa,kBACbgE,YAAa,sBAEnB,MAAO2C,GACLxH,QAAQnH,MAAM2O,MAI1BtX,GAAGgX,MAAQA,G,iCCrDf,QACA,SAAWhX,GACP,IACIuX,EAAoBC,EAAsBC,EAAsBC,EADhEpV,EAAQC,EAAE,QAEVoV,EAAQ3X,EAAG2X,MAEfA,EAAMpR,MAAQ,YAIdgR,EAAqBI,EAAMhhB,KAC3B6gB,EAAuBG,EAAMjV,GAAG+B,KAChCgT,EAAuBE,EAAMjV,GAAGM,KAChC0U,EAAsBC,EAAMjV,GAAGuC,IAE/B0S,EAAMhhB,KAAO,WACT4gB,EAAmBtqB,MAAMiH,KAAMhH,WAC/ByqB,EAAMC,MAAMnU,KAAK,WAAY,OAGjCkU,EAAMjV,GAAG+B,KAAO,WACZ+S,EAAqBvqB,MAAMiH,KAAMhH,WACjCyqB,EAAMC,MAAMlT,WAAW,aAG3BiT,EAAMjV,GAAGM,KAAO,WACZyU,EAAqBxqB,MAAMiH,KAAMhH,WACjCyqB,EAAMC,MAAMnU,KAAK,WAAY,OAGjCkU,EAAMjV,GAAGuC,IAAM,WACXyS,EAAoBzqB,MAAMiH,KAAMhH,WAChCyqB,EAAMC,MAAMnU,KAAK,WAAY,OAGjCkU,EAAME,WAAa,SAAUplB,GACzB8P,EAAE1T,UAAU6T,GAAGiV,EAAMpR,MAAM9T,GAAS,OAAO,WAEvCklB,EAAM1S,KAAM,EACZ0S,EAAMzR,UAAU4H,IAAI,YAAa,IAEjCvL,EAAE,iBAAiBO,MAAK,WAChBP,EAAErO,MAAM/C,KAAK,cAAgBwmB,EAAMpR,MAAM9T,IACzC8P,EAAErO,MAAM0P,SAAS,sBAK7BrB,EAAE1T,UAAU6T,GAAGiV,EAAMpR,MAAM9T,GAAS,QAAQ,SAAUlG,GAElDorB,EAAM1S,KAAM,EACZ0S,EAAMjV,GAAGuC,IAAI1Y,GACborB,EAAMzR,UAAU4H,IAAI,YAAa,IAEjCvL,EAAE,iBAAiBO,MAAK,WAChBP,EAAErO,MAAM/C,KAAK,cAAgBwmB,EAAMpR,MAAM9T,IACzC8P,EAAErO,MAAMyP,YAAY,sBAKhCpB,EAAE1T,UAAU6T,GAAGiV,EAAMG,aAAe,OAAO,SAAUvrB,GAEjDorB,EAAM3R,UAAW,EACjB2R,EAAMzR,UAAU4H,IAAI,aAAc,GAElC6J,EAAMnL,MAAO,EACqB,UAA9BlK,EAAMmB,KAAK,gBACXkU,EAAMjV,GAAGM,KAAKzW,MAItBgW,EAAE1T,UAAU6T,GAAGiV,EAAMG,aAAe,QAAQ,SAAUvrB,GAElDorB,EAAM3R,UAAW,EAEjB2R,EAAMnL,MAAO,EACqB,UAA9BlK,EAAMmB,KAAK,gBACXkU,EAAMjV,GAAGM,KAAKzW,OA7E9B,CAiFGyT,K,kBClFH,IACUsC,EAEFqV,EAFErV,EAAQC,EAAE,QAEZoV,EAAQ,CACRI,OAAQ,KACR3U,QAAS,KACT4U,UAAW,KACXC,WAAY,KACZ/U,QAAS,KACTgV,KAAM,KACNlS,UAAU,EACVO,MAAO,YACPuR,aAAc,KACdtL,MAAM,EACN2L,QAAQ,EACRC,OAAO,EACPC,YAAa,EACbC,QAAS,GACTrT,IAAK,KACLwF,MAAO,KACP8N,MAAM,EACNC,UAAW,OACXtS,UAAW,KACXuS,SAAS,EACTC,OAAO,EAEP/hB,KAAM,SAANA,OACIghB,EAAMI,OACF,oIACAJ,EAAMa,UACN,kGAEJb,EAAMzR,UAAY3D,EAAEoV,EAAMI,QAC1BJ,EAAMgB,yBAENhB,EAAMK,UAAYL,EAAMzR,UAAUnD,KAAK,qBACvC4U,EAAMM,WAAaN,EAAMzR,UAAUnD,KAAK,mBACxC4U,EAAMC,MAAQD,EAAMzR,UAAUnD,KAAK,kBACnC4U,EAAMzU,QAAUX,EAAE,iBAElBoV,EAAMG,aAAeH,EAAMpR,MAC3BoR,EAAMpR,MAAQ,GAEdoR,EAAMiB,kBAENjB,EAAMzU,QAAQJ,MAAK,SAAUrQ,GACzBklB,EAAM7S,MAAM+T,SAAStW,EAAErO,MAAOzB,GAC9BklB,EAAME,WAAWplB,MAGrBklB,EAAMmB,2BACNnB,EAAM/U,UACN+U,EAAMxQ,qBACuB,oBAAlB4R,gBACPA,eAAenW,UAGf5C,GAAGgZ,OAAShZ,GAAGgZ,MAAMN,UACrBf,EAAMe,OAAQ,IAGtBC,uBAAwB,SAAxBA,yBACI,IAAIM,EAAQ1W,EAAE,QACV0W,EAAM9rB,OAAS,EAAG8rB,EAAMhqB,OAAO0oB,EAAMzR,WACpC5D,EAAMrT,OAAO0oB,EAAMzR,YAE5B4S,yBAA0B,SAA1BA,6BACAjB,WAAY,SAAZA,WAAsBplB,GAClB8P,EAAE1T,UAAU6T,GAAGiV,EAAMpR,MAAM9T,GAAS,OAAO,WAEvCklB,EAAM1S,KAAM,EAEZ1C,EAAE,iBAAiBO,MAAK,WAChBP,EAAErO,MAAM/C,KAAK,cAAgBwmB,EAAMpR,MAAM9T,IACzC8P,EAAErO,MAAM0P,SAAS,sBAK7BrB,EAAE1T,UAAU6T,GAAGiV,EAAMpR,MAAM9T,GAAS,QAAQ,SAAUlG,GAElDorB,EAAM1S,KAAM,EACZ0S,EAAMjV,GAAGuC,IAAI1Y,GAEbgW,EAAE,iBAAiBO,MAAK,WAChBP,EAAErO,MAAM/C,KAAK,cAAgBwmB,EAAMpR,MAAM9T,IACzC8P,EAAErO,MAAMyP,YAAY,sBAKhCpB,EAAE1T,UAAU6T,GAAGiV,EAAMG,aAAe,OAAO,SAAUvrB,GAEjDorB,EAAM3R,UAAW,EACjB2R,EAAMzR,UAAU4H,IAAI,aAAc,GAC9BvL,EAAE,qBAAqBpV,SACvBwqB,EAAMnL,MAAO,EACbmL,EAAMjV,GAAGM,KAAKzW,OAItBgW,EAAE1T,UAAU6T,GAAGiV,EAAMG,aAAe,QAAQ,SAAUvrB,GAElDorB,EAAM3R,UAAW,EACbzD,EAAE,qBAAqBpV,SACvBwqB,EAAMnL,MAAO,EACbmL,EAAMjV,GAAGM,KAAKzW,OAItBorB,EAAMuB,wBAEVA,qBAAsB,SAAtBA,yBACAtW,QAAS,SAATA,UACIN,EAAMI,GAAG,QAAS,iBAAiB,SAAUnW,GACzC,OAAIorB,EAAMc,SAAWd,EAAM3R,UACvBzZ,EAAE6a,2BACF7E,EAAErO,MAAM+Q,IAAI,UACL,IAEX0S,EAAMc,SAAU,EAEZlW,EAAErO,MAAMsP,SAAS,YACjBjX,EAAEwf,uBACFxf,EAAEuJ,uBAIFyM,EAAErO,MAAMsP,SAAS,kBACjBjX,EAAEwf,kBACFxf,EAAEuJ,iBACF6hB,EAAMwB,gBACNxB,EAAMzU,QAAUX,EAAErO,MAClByjB,EAAMvU,QAAUb,EAAEoV,EAAMzU,QAAQ/R,KAAK,iBACrCwmB,EAAMnL,MAAO,EAETjK,EAAErO,MAAMyQ,GAAG,mBAAqB3E,GAAGgF,IAAIF,MAAMsU,MAAM7W,EAAErO,OACrDyB,YAAW,WACPgiB,EAAMjV,GAAG+B,KAAKlY,KACf,KAEHorB,EAAMjV,GAAG+B,KAAKlY,SAK1B+V,EAAMI,GAAG,QAAS,kCAAkC,SAAUnW,GACtDgW,EAAErO,MAAMsP,SAAS,kBACjBjX,EAAEuJ,iBAGN6hB,EAAMnL,MAAO,EACbmL,EAAMjV,GAAGM,KAAKzW,OAGtB4a,mBAAoB,SAApBA,uBACAgS,cAAe,SAAfA,gBACI5W,EAAE,+BAA+BuL,IAAI,aAAc,cAEvDuL,iBAAkB,SAAlBA,mBACI9W,EAAE,+BAA+BuL,IAAI,aAAc,KAEvD8K,gBAAiB,SAAjBA,kBACQrW,EAAE,iBAAiBpV,SACnBwqB,EAAMG,aAAe,cAG7BwB,aAAc,SAAdA,eACI3B,EAAMC,MAAM7M,KAAK,mDAAqD4M,EAAMa,YAEhF9V,GAAI,CACA+B,KAAM,SAANA,KAAgBlY,GAAG,IAAAgtB,EACfhX,EAAE1T,UAAUwF,QAAQ,aACF,oBAAPmlB,KACPA,IAAI9C,QAAQnU,EAAE,yBAOlB,IAAMkX,EAAelX,EAAEvE,MAAM,cAE7B,GADAuE,EAAE1T,UAAUwF,QAAQolB,EAAc,CAAC9B,KAC/B8B,EAAaC,qBAAjB,CAIkC,cAA9BpX,EAAMmB,KAAK,gBACXzD,GAAG6E,WAAWC,MAAMvY,IAGpBorB,EAAMzU,QAAQyB,GAAG,uBAA0BgT,EAAMzU,QAAQ/R,KAAK,kBAAqBwmB,EAAM3R,SAExF1D,EAAMqB,YAAY,0BADnBrB,EAAMsB,SAAS,0BAGnB+T,EAAMQ,OAASR,EAAMzU,QAAQ4G,QAAQ,qBAAqB3c,OAAS,EACnEwqB,EAAMS,MACFT,EAAMzU,QAAQ3M,QAAQ,cAAcpJ,OAAS,GAAKwqB,EAAMzU,QAAQyB,GAAG,gCACnEgT,EAAMzU,QAAQ3M,QAAQ,kBAAkBpJ,OAAS,IACjDwqB,EAAMQ,QAAS,EACfR,EAAMS,OAAQ,GAGlB,IAAMuB,EAA2B,QAAlBJ,EAAGhtB,EAAEuZ,qBAAa,IAAAyT,OAAA,EAAfA,EAAiBlqB,aAAa,iBAC5CsqB,GAAWhC,EAAMzR,UAAUzC,KAAK,OAAsB,SAAdkW,EAAuB,OAASA,GAE5EhC,EAAMjV,GAAGkX,iBAETjC,EAAMM,WAAWjV,OAAOW,YAAY,YACpCgU,EAAMa,UAAY,OAClBb,EAAM2B,eAEF3B,EAAMQ,QACNR,EAAMjV,GAAGmX,aAGTlC,EAAMS,QACoB,IAAtBT,EAAMU,cACNV,EAAMnL,MAAO,EACbmL,EAAMjV,GAAGM,KAAKzW,IAGlBorB,EAAMU,cACNV,EAAMzR,UACDtC,SAAS,iBACTb,KAAK,qBACL9T,OAAO,wCAA0C0oB,EAAMU,YAAc,YAC1EV,EAAMK,UAAYzV,EAAE,YAAcoV,EAAMU,cAG5CV,EAAMK,UAAUvU,KAAK,kBAAmBkU,EAAMzU,QAAQ/R,KAAK,iBAEvDwmB,EAAMvU,QAAQI,SAAS,eACvBmU,EAAMvU,QAAQ7M,QAAQ,iBAAiBwM,KAAK,cAAcY,YAAY,UACtEgU,EAAMvU,QAAQQ,SAAS,WAG3B,IAAIxI,EAAQuc,EAAMzU,QAAQwG,OACtBiO,EAAMzU,QAAQyB,GAAG,kBACjBvJ,EAAQuc,EAAMzU,QAAQ/R,KAAK,WAI3BwmB,EAAMzU,QAAQM,SAAS,QAAUmU,EAAMzU,QAAQ4G,QAAQ,uBAAuB3c,OAAS,KACvFiO,EAAQ,WAGZ,IAAI0e,EAAYnC,EAAMvU,QAAQ1F,WAE9Bia,EAAMjV,GAAGqX,WAAWD,GAEhBnC,EAAMzU,QAAQyB,GAAG,uBACjBgT,EAAMlN,MAAQkN,EAAMzU,QAAQ/R,KAAK,eAEb,SAAhBwmB,EAAMlN,QACNqP,EAAYnC,EAAMvU,UAGtBuU,EAAMlN,MAAQ,GAGlBkN,EAAMW,QAAQtrB,KAAKoO,GACnBuc,EAAMM,WAAWlN,KAAK3P,GAERuc,EAAMvU,QAAQL,KAAK,QAAQ5V,OAAS,GAE9CwqB,EAAMK,UAAU/oB,OAAO6qB,EAAU/O,QACjCxI,EAAE,+BAA+BhP,SACjCokB,EAAMK,UAAUjV,KAAK,cAAcD,MAAK,WACpC9C,GAAGqM,IAAI3J,GAAG4J,YAAY/J,EAAErO,YAGR,SAAhByjB,EAAMlN,MACFkN,EAAMQ,QAAUR,EAAMS,MACtBT,EAAMvU,QAAQoB,MAAM,iDAEpBmT,EAAMvU,QAAQoB,MAAM,2CAGpBmT,EAAMQ,QAAUR,EAAMS,MACtBT,EAAMvU,QAAQnU,OAAO,iDAErB0oB,EAAMvU,QAAQnU,OAAO,2CAI7B6qB,EAAU1C,SAASO,EAAMK,WAEzBL,EAAMjV,GAAGsX,WAAWrC,EAAMK,YAML,oBAAdiC,gBAAyD,IAArBA,UAAUC,QACrDD,UAAUC,SAASC,UAEvB7X,EAAMsB,SAAS,+BAA+BH,KAAK,cAAe,SAClEkU,EAAMC,MAAMtoB,QAEZ,IAAM8qB,EAAW7X,EAAE,YACf6X,EAASjtB,QACTitB,EAASxW,SAAS,SAStB,IAAMyW,EAAY9X,EAAEvE,MAAM,gBAEtB2Z,EAAMY,MACN5iB,YAAW,WACPgiB,EAAMjV,GAAG4X,aACT3C,EAAMjV,GAAG6X,YACThY,EAAE1T,UAAUwF,QAAQgmB,EAAW,CAAC1C,MACjC,KACHA,EAAMY,MAAO,IAEbZ,EAAMjV,GAAG4X,aACT/X,EAAE1T,UAAUwF,QAAQgmB,EAAW,CAAC1C,KAGpCpV,EAAE1T,UAAUwF,QAAQ,eAExBimB,WAAY,SAAZA,aACI,IAEIE,EAAa7C,EAAMzR,WACnByR,EAAMQ,QAAUR,EAAMS,SACtBoC,EAAa7C,EAAMK,YAGlBL,EAAMzR,UAAU1C,SAAS,aAAemU,EAAMS,QAC/CoC,EAAajY,EAAE,gCAEnB,IAAIkY,EAAY,IAAH/lB,OAVI,QAWbijB,EAAMe,QACN+B,EAZa,QAejBD,EACK1M,IAAI,YAAa,cAAFpZ,OAAgB+lB,EAAS,MACxCxV,MACAyV,IAAI,oDAAoD,SAAUnuB,GAC/DA,EAAEwf,kBACF4L,EAAMc,SAAU,EAChBd,EAAM0B,sBAEd1B,EAAMM,WAAWxT,OAAOb,SAAS,YACjC+T,EAAMzR,UAAUtC,SAAS,YACzB+T,EAAMjV,GAAGiY,uBAEbd,WAAY,SAAZA,aACIlC,EAAMU,cACNV,EAAMK,UAAU/oB,OAAO,wCAA0C0oB,EAAMU,YAAc,YACrFV,EAAMK,UAAYzV,EAAE,YAAcoV,EAAMU,cAE5CuB,eAAgB,SAAhBA,mBACAe,oBAAqB,SAArBA,wBACAJ,UAAW,SAAXA,cACAvX,KAAM,SAANA,KAAgBzW,GACZ,IAAMquB,EAAgBrY,EAAEhW,EAAE+J,QAAQC,QAAQ,YAAYpJ,OAKlD0tB,EAAetY,EAAEvE,MAAM,eAE3B,GADAuE,EAAE1T,UAAUwF,QAAQwmB,EAAc,CAAClD,KAC/BkD,EAAanB,qBAAjB,CAUA,QANiB,IAANntB,GAAqBgW,EAAE,YAAYiB,SAAS,cAC9CoX,IACDjD,EAAMnL,MAAO,IAIjBmL,EAAMnL,KAAM,CACZmL,EAAMwB,gBACNxB,EAAMM,WAAWjV,OAAOW,YAAY,YAEpCgU,EAAMQ,QAAS,EAEW,IAAtBR,EAAMU,aACNV,EAAMQ,QAAS,EACfR,EAAMK,UAAYL,EAAMzR,UAAUxI,SAAS,sBAE3Cia,EAAMK,UAAYzV,EAAE,YAAcoV,EAAMU,aAE5CV,EAAMjV,GAAGqX,WAAWpC,EAAMK,WAE1B,IAAI8C,EAAiBvY,EAAEoV,EAAMK,UAAUvU,KAAK,oBACvCqX,IACDA,EAAiBxY,GAGrB,IAAMyY,EAAQpD,EAAMzR,UAAUnD,KAAK,QAAQ5V,OAAS,EAIpD,GAFAwqB,EAAMjV,GAAGsY,2BAELD,EAAO,CACP,IAAME,EAAmB1Y,EAAE,0BAC3B0Y,EAAiBhsB,OAAO0oB,EAAMK,UAAUjN,QACxCkQ,EAAiBlY,KAAK,cAAcD,MAAK,WACrC9C,GAAGqM,IAAI3J,GAAG4J,YAAY/J,EAAErO,eAGxByjB,EAAMK,UAAUjV,KAAK,qBAAqB5V,QAC1CwqB,EAAMK,UAAUjV,KAAK,qBAAqBxP,SAE9CokB,EAAMjV,GAAGwY,iBAAiBJ,GAC1BnD,EAAMjV,GAAGsX,WAAWc,GASxB,GANAnD,EAAMW,QAAQ6C,OAAOxD,EAAMU,YAAa,GACxCV,EAAMM,WAAWlN,KAAK4M,EAAMW,QAAQX,EAAMU,YAAc,IACpDV,EAAMzU,SACNyU,EAAMzU,QAAQ5T,QAGdqoB,EAAMQ,OACNR,EAAMU,cACNV,EAAMjV,GAAG0Y,aACLzD,EAAMS,OACNT,EAAMK,UAAUzkB,SAEpBokB,EAAMK,UAAYzV,EAAE,YAAcoV,EAAMU,aACd,IAAtBV,EAAMU,cACNV,EAAMK,UAAYL,EAAMzR,UAAUxI,SAAS,0BAE5C,CACHia,EAAMU,YAAc,EACpB9V,EAAE,cAAcoB,YAAY,eAC5BrB,EAAMqB,YAAY,+BAA+Be,WAAW,eAC5D,IAAM0V,EAAW7X,EAAE,YACf6X,EAASjtB,QACTitB,EAASzW,YAAY,SAGzBgU,EAAMjV,GAAG0Y,aACTzD,EAAMzR,UAAUvC,YAAY,YAC5BgU,EAAMzR,UAAUxB,WAAW,QAQ/B,GANAiT,EAAMM,WAAWxT,OAAOb,SAAS,YAEjC+T,EAAMa,UAAY,OAClBb,EAAM2B,eACN3B,EAAMjV,GAAG2Y,eAAe9uB,GAEpBorB,EAAMzR,UAAU1C,SAAS,iBAAkB,CAC3C,KAAOmU,EAAMU,YAAc,GACvBV,EAAMU,cACNV,EAAMjV,GAAGM,KAAKzW,QAID,IAANA,IACNgW,EAAEhW,EAAE+J,QAAQkN,SAAS,kBAAoBjB,EAAEhW,EAAEuZ,eAAetC,SAAS,mBAChD,IAAtBmU,EAAMU,aAENV,EAAMjV,GAAGuC,IAAI1Y,GAIhBquB,QAAgC,IAANruB,GAAqBgW,EAAEhW,EAAE+J,QAAQC,QAAQ,cAAcpJ,QAClFwqB,EAAMjV,GAAGuC,IAAI1Y,GAGjBorB,EAAM0B,mBAMe,oBAAdY,gBAAyD,IAArBA,UAAUC,QACrDD,UAAUC,SAASC,UAIvB,IAAMmB,EAAa/Y,EAAEvE,MAAM,gBAC3BuE,EAAE1T,UAAUwF,QAAQinB,EAAY,CAAC3D,MAErCyD,WAAY,SAAZA,aACI,IAAIG,EAAe5D,EAAMzR,UACrByR,EAAMQ,SAAQoD,EAAe5D,EAAMK,WAEvCuD,EACKzN,IAAI,YAAa,mBACjB7I,MACAyV,IAAI,oDAAoD,SAAUnuB,GAC/DA,EAAEwf,kBACE4L,EAAMnL,OACDmL,EAAMQ,OACN5V,EAAErO,MAAMX,SADMokB,EAAMK,UAAUoB,aAInD8B,iBAAkB,SAAlBA,iBAA4BJ,GACxB,IAAMU,EACF7D,EAAMQ,QAAUR,EAAMS,MAAQ,6BAA+B,uBAC3DqD,EACc,SAAhB9D,EAAMlN,MAAmBlI,EAAEiZ,GAAuBjZ,EAAEiZ,EAAqBV,GAC7EnD,EAAMK,UAAUta,WAAW0Z,SAASqE,EAAqB5T,UACzD4T,EAAqBloB,UAEzB8nB,eAAgB,SAAhBA,eAA0B9uB,KAC1ByuB,yBAA0B,SAA1BA,6BACA/V,IAAK,SAALA,IAAe1Y,GAOX,GANAorB,EAAMM,WAAWjV,OAAOW,YAAY,YAEpCpB,EAAE,iBAAiBoB,YAAY,eAEjBgU,EAAMzR,UAAUnD,KAAK,QAAQ5V,OAAS,EAEzC,CACPwqB,EAAMK,UAAYzV,EAAE,QAAQhM,QAAQ,qBAEpC,IAAM0kB,EAAmB1Y,EAAE,0BAC3B0Y,EAAiBhsB,OAAO0oB,EAAMK,UAAUjN,QACxCkQ,EAAiBlY,KAAK,cAAcD,MAAK,WACrC9C,GAAGqM,IAAI3J,GAAG4J,YAAY/J,EAAErO,UAGhCqO,EAAE,cAAcoB,YAAY,eAC5BrB,EAAMqB,YAAY,+BAA+Be,WAAW,eAC5DnC,EAAE,YAAYoB,YAAY,SAC1BgU,EAAMK,UAAYL,EAAMzR,UAAUxI,SAAS,qBAC3Cia,EAAMzR,UACD4H,IAAI,YAAa,mBACjB7I,MACAyV,IAAI,oDAAoD,SAAUnuB,GAC/DA,EAAEwf,kBACF4L,EAAMzR,UAAUvC,YAAY,YACxBgU,EAAM1S,MACN1C,EAAE,YAAYoB,YAAY,iBAC1BgU,EAAMK,UAAUoB,YAG5BzB,EAAM1S,KAAM,EACZ0S,EAAMjV,GAAGgZ,cAAcnvB,IAE3BmvB,cAAe,SAAfA,cAAyBnvB,KACzBwtB,WAAY,SAAZA,WAAsB4B,GACA,oBAAPnC,KACPA,IAAI9C,QAAQiF,EAAI5Y,KAAK,UAG7BiX,WAAY,SAAZA,WAAsB2B,GACA,oBAAPnC,KACPA,IAAI5pB,QAAQ+rB,EAAI5Y,KAAK,WAIjC+B,MAAO,CACH+T,SAAU,SAAVA,SAAoB8C,EAAKlpB,QACe,IAAzBkpB,EAAIxqB,KAAK,YAChBwmB,EAAMpR,MAAM9T,GAASkpB,EAAIxqB,KAAK,aAE9BwqB,EAAIxqB,KAAK,WAAYwmB,EAAMG,cAC3BH,EAAMpR,MAAM9T,GAASklB,EAAMG,iBAM3C9X,GAAG2X,MAAQA,G,kBCxjBf,IACQrV,EACAsZ,EADAtZ,EAAQC,EAAE,QACVqZ,EAAgB,CAChBrV,MAAO,YACPuR,aAAc,KACd9R,UAAU,EACV6V,eAAgBtZ,EAAE,8BAClBuZ,iBAAkB,KAClBC,kBAAmB,KACnBC,iBAAkB,IAClBC,cAAe1Z,EAAE,kDACjB2Z,MAAO3Z,EAAE,sCACT4Z,aAAc5Z,EAAE,wBAEhB5L,KAAM,SAANA,OACIilB,EAAc9D,aAAe8D,EAAcrV,MAC3CqV,EAAcrV,MAAQ,GACtBhE,EAAE,8BAA8BO,MAAK,SAAUrQ,GAC3CmpB,EAAc9W,MAAM+T,SAASpmB,EAAO8P,EAAErO,OACtC0nB,EAAc/D,WAAWplB,MAE7BmpB,EAAchZ,UACdgZ,EAAclZ,GAAGC,SAGrBkV,WAAY,SAAZA,WAAsBplB,GAClB8P,EAAE1T,UAAU6T,GAAGkZ,EAAcrV,MAAM9T,GAAS,OAAO,WAC/CmpB,EAAc5V,UAAW,EAEzBzD,EAAE,8BAA8BO,MAAK,WAC7BP,EAAErO,MAAM/C,KAAK,cAAgByqB,EAAcrV,MAAM9T,IACjD8P,EAAErO,MAAM0P,SAAS,sCAK7BrB,EAAE1T,UAAU6T,GAAGkZ,EAAcrV,MAAM9T,GAAS,QAAQ,WAChDmpB,EAAc5V,UAAW,EAEzBzD,EAAE,8BAA8BO,MAAK,WAC7BP,EAAErO,MAAM/C,KAAK,cAAgByqB,EAAcrV,MAAM9T,IACjD8P,EAAErO,MAAMyP,YAAY,uCAMpCf,QAAS,SAATA,UACIL,EAAE1E,QAAQ6E,GAAG,UAAU,WACnBkZ,EAAcQ,gBAGlB9Z,EAAMI,GAAG,WAAY,+CAA+C,SAAUnW,GACtEgW,EAAErO,MAAM4V,QAAQ,kBAAkB3c,OAAS,IAAMoV,EAAErO,MAAM2T,SAASrE,SAAS,kBAC3EjB,EAAE,wDACG8M,IAAI9M,EAAErO,MAAM2T,UACZlE,YAAY,cAEjBpB,EAAE,oCAAoC8M,IAAI9M,EAAErO,MAAM2T,UAAUlE,YAAY,cAG5EpB,EAAErO,MAAM2T,SAAStE,YAAY,cACxBhB,EAAErO,MAAM2T,SAASrE,SAAS,cAG3BjB,EAAErO,MAAM2T,SAASlE,YAAY,kBAF7BpB,EAAErO,MAAM2T,SAASjE,SAAS,qBAMlCtB,EAAMnM,OAAM,SAAU5J,GAClBgW,EAAE,gDAAgDoB,YAAY,kBAGtEjB,GAAI,CACAC,MAAO,SAAPA,QACIiZ,EAAcO,aAAa1X,OAC3BmX,EAAcQ,aAEdzmB,YAAW,WACPimB,EAAcQ,eACf,OAGXA,WAAY,SAAZA,aACI7Z,EAAE,8BAA8BO,MAAK,WAIjC,GAHA8Y,EAAcC,eAAiBtZ,EAAErO,MACjC0nB,EAAcK,cAAgBL,EAAcC,eAAe9Y,KAAK,kBAE3D6Y,EAAcC,eAAerY,SAAS,gCAyDlCoY,EAAcK,cAAczY,SAAS,YACtCoY,EAAcK,cAAcrY,SAAS,UACrCgY,EAAcK,cAAcI,OAAOT,EAAcK,cAAclZ,KAAK,mBAAmBgI,QACvF6Q,EAAcK,cAAclZ,KAAK,mBAAmBqW,aA5DgB,CACxEwC,EAAcE,iBAAmBF,EAAcC,eAAe9Y,KAAK,iBAAiB2K,QACpFkO,EAAcG,kBAAoBH,EAAcC,eAAe9Y,KAAK,kBAAkB2K,QACtFkO,EAAcM,MAAQN,EAAcC,eAAe9Y,KAAK,gBACxD6Y,EAAcO,aAAeP,EAAcC,eAAe9Y,KAAK,wBAE/D,IAAMuZ,EACFV,EAAcC,eAAenO,SAC5BkO,EAAcE,iBAAmBF,EAAcG,kBAAoB,IACpEQ,EAAYX,EAAcM,MAAMxO,QAEpC,GAAI4O,EAAqB,GAAKC,EAAY,EACtC,GAAIA,EAAYD,EACZ,KAAOC,EAAYD,GAAoB,CACnC,IAAME,EAAgBZ,EAAcM,MAC/BnZ,KAAK,oDACLkP,OACL,KAAIuK,EAAcrvB,OAAS,GAQvB,MAPAyuB,EAAcK,cAActY,YAAY,UACxCiY,EAAcK,cACTlZ,KAAK,oBACLsR,QAAQmI,EAAc,GAAGxsB,WAC9BwsB,EAAcjpB,SACdgpB,EAAYX,EAAcM,MAAMxO,aAKrC,GACH4O,EAAqBC,EAAYX,EAAcI,mBAC9CJ,EAAcK,cAAczY,SAAS,UACxC,CACE,KAAO8Y,EAAqBC,GAAW,CACnC,IAAME,EAAab,EAAcK,cAAclZ,KAC3C,qCAEE2Z,EAAiBD,EAAWrQ,QAClC,KAAIsQ,EAAevvB,OAAS,GAUxB,MATAyuB,EAAcK,cAAcI,OAAOK,EAAe,GAAG1sB,WAEjDysB,EAAWtvB,QAAU,GACrByuB,EAAcK,cAAcrY,SAAS,UAGzC8Y,EAAenpB,SACfgpB,EAAYX,EAAcM,MAAMxO,QAMpC6O,EAAYD,GACZV,EAAcQ,mBAatCtX,MAAO,CACH+T,SAAU,SAAVA,SAAoBpmB,EAAOkpB,QACY,IAAxBA,EAAIxqB,KAAK,aAAuD,KAAzBwqB,EAAIxqB,KAAK,YACvDyqB,EAAcrV,MAAM9T,GAASkpB,EAAIxqB,KAAK,aAEtCwqB,EAAIxqB,KAAK,WAAYyqB,EAAc9D,cACnC8D,EAAcrV,MAAM9T,GAASmpB,EAAc9D,iBAM3D9X,GAAG4b,cAAgBA,G,0DCtGnBe,EAEJ,WACE,IAAMC,EAAgB/tB,SAASguB,YAAY,eACvCC,EAAiBjuB,SAASguB,YAAY,eAI1C,SAASF,WAAWrmB,EAAQgK,GAC1B,IAAIjS,OAAmB,IAARiS,EAAsBA,EAAM,GAC3CpM,KAAK6oB,QAAU,QACf7oB,KAAK8oB,UAAYnf,OAAOof,UAAUD,WAAa,yCAC/C9oB,KAAKgpB,MAAQ,CACXC,yBAA0B9uB,EAAE8uB,0BAA4B,KACxDC,SAAU/uB,EAAE+uB,WAAY,EACxBC,sBAAuBhvB,EAAEgvB,uBAAyB,EAClDC,YAAajvB,EAAEivB,aAAe,sBAC9BC,SAAgC,iBAAflvB,EAAEkvB,SAAwB1uB,SAASC,cAAcT,EAAEkvB,UAAYlvB,EAAEkvB,UAAY1f,OAC9F2f,YAAanvB,EAAEmvB,aAAe,eAC9BC,WAAYpvB,EAAEovB,YAAc,cAC5BC,kBAAmBrvB,EAAEqvB,mBAAqB,uBAC1CC,iBAAkBtvB,EAAEsvB,mBAAoB,EACxCC,SAAUvvB,EAAEuvB,WAAY,EACxBC,yBAA0BxvB,EAAEwvB,2BAA4B,EACxDC,iBAAkBzvB,EAAEyvB,kBAAoB,OAS1C5pB,KAAKgpB,MAAMa,YAAc7pB,KAAK8pB,kBAAoB,QAClD9pB,KAAKqD,UAAY,GACjB,IAAI0mB,EAAc/pB,KAAKgpB,MACnBa,EAAcE,EAAYF,YAC1BD,EAAmBG,EAAYH,iBAC/BV,EAAWa,EAAYb,SACvBC,EAAwBY,EAAYZ,sBACpCM,EAAmBM,EAAYN,iBAC/BO,EAA6C,QAArBJ,GAA+BV,EAA0C,GAA/BC,EAAwB,KAC1Fc,EAAgC,UAAhBJ,EAA0BA,EAAc,GAC5D7pB,KAAKkqB,IAAwB,iBAAX9nB,EAAsBzH,SAASwH,iBAAiBC,GAAUA,EACtE,WAAYpC,KAAKkqB,MAAMlqB,KAAKkqB,IAAM,CAAClqB,KAAKkqB,MAE9C,IAAK,IAAIhxB,EAAI,EAAGA,EAAI8G,KAAKkqB,IAAIjxB,OAAQC,IAAK,CACxC,IAAIwL,EAAK1E,KAAKkqB,IAAIhxB,GAElBwL,EAAGylB,MAAMP,GAAoBI,EAC7BtlB,EAAGylB,MAAMhpB,SAAW8oB,GAEA,UAAhBJ,GAA2BJ,IAE7BzpB,KAAKqD,UAAUvK,KAAKkH,KAAKoqB,YAAY1lB,EAAI1E,KAAKgpB,SAjDpDN,EAAc2B,gBAAgB,aAAa,GAAM,EAAO,IACxDzB,EAAeyB,gBAAgB,cAAc,GAAM,EAAO,IA8D1D,IAAIC,EAAS7B,WAAW9uB,UA8TxB,OA5TA2wB,EAAOR,eAAiB,SAASA,iBAC/B,IAAIS,EAEJ,GAAIvqB,KAAKgpB,MAAMU,SACba,EAAa,YACR,CAIL,IAHA,IAAIC,EAAS,CAAC,GAAI,MAAO,WAAY,QAAS,QAC1C/vB,EAAOE,SAAS8vB,KAAKN,MAEhBjxB,EAAI,EAAGA,EAAIsxB,EAAOvxB,OAAQC,GAAK,EACtCuB,EAAK0G,SAAWqpB,EAAOtxB,GAAK,SAG9BqxB,EAAa9vB,EAAK0G,SAAW1G,EAAK0G,SAAW,QAC7C1G,EAAK0G,SAAW,GAGlB,OAAOopB,GA4BTD,EAAOF,YAAc,SAASA,YAAY1lB,EAAIskB,GAC5C,IAAIvX,EAAQzR,KAERuG,EAAO,CACT7B,GAAIA,EACJiP,OAAQjP,EAAGzJ,WACX+tB,MAAOA,GAEThpB,KAAK0qB,MAAQ1qB,KAAKgpB,MAAMK,WAAa1f,OACrC,IAAIghB,EAAK3qB,KAAK0qB,MAAQ/gB,OAAS3J,KAAK4qB,iBAAiBrkB,EAAK7B,GAAI6B,EAAKyiB,MAAMK,UAUzE,OATArpB,KAAK6qB,qBAAqBtkB,GAC1BA,EAAKoN,OAAO/M,WAAa,IAAMoiB,EAAMI,YACrC7iB,EAAKmO,MAAQ,UAEbnO,EAAKukB,eAAiB,WACpB,OAAOrZ,EAAMsZ,YAAYxkB,IAG3BokB,EAAGpoB,iBAAiB,SAAUgE,EAAKukB,gBAC5BvkB,GAYT+jB,EAAOM,iBAAmB,SAASA,iBAAiBlmB,EAAIjH,GAEtD,IAAIlB,EAAIkB,EACJpF,EAAIqM,EACR,GAAIrM,EAAEiQ,gBAAkB/L,EAAG,OAAOA,EAElC,KAAOlE,EAAEiQ,gBAAkB/L,GACzBlE,EAAIA,EAAEiQ,cAIR,OAAO/L,GAWT+tB,EAAOU,eAAiB,SAASA,eAAetmB,GAC9C,GAAI1E,KAAKgpB,MAAMW,yBACb,OAAOjlB,EAAGumB,wBAAwBvR,KAAO1Z,KAAKgpB,MAAMK,SAAS6B,aAAevwB,SAASwwB,gBAAgB3rB,WAGvG,IAAI4rB,EAAc,EAElB,GACEA,EAAc1mB,EAAGjF,UAAY2rB,QACtB1mB,EAAKA,EAAG2mB,cAEjB,OAAOD,GAaTd,EAAOO,qBAAuB,SAASA,qBAAqBtkB,GAC1D,IAAI+kB,EAAK/kB,EACLhK,EAAI+uB,EAAGtC,MACPtkB,EAAK4mB,EAAG5mB,GACRiP,EAAS2X,EAAG3X,OACZ4X,GAAYvrB,KAAK0qB,OAA2B,UAAlBnuB,EAAEstB,YAC5B2B,EAA+B,WAAvBjvB,EAAEqtB,iBACV6B,EAAiBF,EAAWvrB,KAAKgrB,eAAezuB,EAAE8sB,UAAY,EAC9DqC,EAAcH,EAAWvrB,KAAKgrB,eAAerX,GAAU8X,EAAiBzrB,KAAKgrB,eAAerX,GAC5FgY,EAAoD,OAA/BpvB,EAAE0sB,yBAAoC1sB,EAAE0sB,yBAA2BvkB,EAAGknB,aAC3FC,EAAeH,EAAc/X,EAAOiY,aACxCN,EAAGtS,OAASyS,EAAiBlvB,EAAE4sB,sBAC/BmC,EAAGI,YAAcF,EAAQE,EAAcJ,EAAGtS,OAAS,EACnDsS,EAAGQ,aAAeR,EAAGI,YAAcC,EACnCL,EAAGS,WAAaP,EAAQK,GAAgBnnB,EAAGknB,aAAeN,EAAGtS,QAAU6S,EAAeliB,OAAOqiB,aAW/F1B,EAAO9f,cAAgB,SAASA,cAAc9F,EAAIhM,EAAGmC,GACnD,IAAIxC,EAAIqM,EACJunB,EAAS5zB,EAAEuO,UAAU1H,MAAM,KAC3BrE,IAA4B,IAAvBoxB,EAAOnvB,QAAQjC,IAAWoxB,EAAOnzB,KAAK+B,GAC/C,IAAIqxB,EAAQD,EAAOnvB,QAAQpE,IACZ,IAAXwzB,GAAcD,EAAOhF,OAAOiF,EAAO,GACvC7zB,EAAEuO,UAAYqlB,EAAOrvB,KAAK,MAY5B0tB,EAAOS,YAAc,SAASA,YAAYxkB,GAExC,IAAI+kB,EAAK/kB,EACLlO,EAAIizB,EAAG5mB,GACPnI,EAAI+uB,EAAGtC,MACPtU,EAAQ4W,EAAG5W,MACXhS,EAAQ4oB,EAAGI,YACXS,EAASb,EAAGQ,aACZM,EAAOd,EAAGS,WACVM,EAAMh0B,EAAE8xB,MAERmC,EAAK/vB,EAAE2sB,SACPqD,EAAKhwB,EAAEstB,YACPc,EAAKpuB,EAAE8sB,SACPmD,EAASjwB,EAAE+sB,YACXwC,EAAevvB,EAAEitB,kBACjBiD,EAAQlwB,EAAEgtB,WACVmD,EAAKnwB,EAAEqtB,iBACP4B,EAAe,WAAPkB,EAQRC,EAAU,SAASC,SAAS7wB,GAC9BA,KAGE8wB,EAAO7sB,KAAK0qB,QAAkB/gB,OAAOmjB,uBAAyBnjB,OAAOojB,0BAA4BpjB,OAAOqjB,6BAA+BrjB,OAAOsjB,0BAA1HN,EAUpBO,EAAKltB,KAAKwK,cACV2iB,EAASntB,KAAK0qB,MAAQ/gB,OAAOyjB,SAAWzjB,OAAOuhB,YAAcP,EAAGnrB,UAEhE6tB,EAAW7B,GAAS2B,GAAUzqB,IAAoB,WAAVgS,GAAgC,UAAVA,GAC9D4Y,EAAUH,GAAUf,GAAkB,WAAV1X,EAFhByY,EAASzqB,GAASyqB,EAASf,IAAmB,YAAV1X,GAAiC,UAAVA,IAYzE4W,EAAG5W,MAAQ,SACXmY,GAAI,WACFK,EAAG70B,EAAGo0B,EAAOD,GACbH,EAAIlrB,SAAWorB,EACXD,IACJD,EAAIkB,OAAS,GACblB,EAAIK,GAAMnwB,EAAE4sB,sBAAwB,KACpC9wB,EAAE4D,cAAcysB,QAET2E,GACT/B,EAAG5W,MAAQ,UACXmY,GAAI,WACFK,EAAG70B,EAAGm0B,GACNU,EAAG70B,EAAGo0B,GACK,UAAPF,IAAgBF,EAAIlrB,SAAW,IACnC9I,EAAE4D,cAAc2sB,OAET0E,IACThC,EAAG5W,MAAQ,QACXmY,GAAI,WACFK,EAAG70B,EAAGm0B,EAAQC,GACH,UAAPF,GAAkBD,IACtBD,EAAI3S,IAAM,GACV2S,EAAIkB,OAAS,IACblB,EAAIlrB,SAAW,gBAInB,IAAIqsB,EAAiBL,GAAUhB,GAAUgB,GAAUf,EAC3Be,EAAShB,EAAS,GAAKgB,EAASf,EAItDS,GAAI,WACFK,EAAG70B,EAAGyzB,MAEC0B,GACTX,GAAI,WACFK,EAAG70B,EARI,OAQKyzB,OAKlBxB,EAAOmD,OAAS,SAASA,OAAOC,QACT,IAAjBA,IACFA,EAAe,MAGjB,IAAK,IAAIx0B,EAAI,EAAGA,EAAI8G,KAAKqD,UAAUpK,OAAQC,GAAK,EAAG,CACjD,IAAIy0B,EAAW3tB,KAAKqD,UAAUnK,GAG9B,GAFA8G,KAAK6qB,qBAAqB8C,GAEtBD,EACF,IAAK,IAAIE,KAAeF,EACtBC,EAAS3E,MAAM4E,GAAeF,EAAaE,GAKjD,OAAO5tB,MASTsqB,EAAOuD,eAAiB,SAASA,eAAeF,GAC9C,IAAIt1B,EAAIs1B,EAASjpB,GACbnI,EAAIoxB,EAAS3E,MACbkE,EAAKltB,KAAKwK,cACdnS,EAAE8xB,MAAMhpB,SAAW,GACnB9I,EAAE8xB,MAAM5tB,EAAEqtB,kBAAoB,GAC9BsD,EAAG70B,EAAGkE,EAAE+sB,aACR4D,EAAG70B,EAAGkE,EAAEgtB,YACR2D,EAAG70B,EAAE4C,WAAYsB,EAAE6sB,cAUrBkB,EAAOwD,QAAU,SAASA,UACxB,IAAK,IAAI50B,EAAI,EAAGA,EAAI8G,KAAKqD,UAAUpK,OAAQC,GAAK,EAAG,CACjD,IAAIy0B,EAAW3tB,KAAKqD,UAAUnK,GAC9By0B,EAAS3E,MAAMK,SAASxmB,oBAAoB,SAAU8qB,EAAS7C,gBAC/D9qB,KAAK6tB,eAAeF,GAGtB3tB,KAAK+qB,aAAc,EACnB/qB,KAAKqD,UAAY,IAGZolB,WAhYT,GA6YesF,MAJf,SAASA,WAAW3rB,EAAQjI,GAC1B,OAAO,IAAIsuB,EAAWrmB,EAAQjI,KCzchC,SAAWkU,EAAGvC,GACV,IAAM0gB,EAAS,CACXwB,YAAa,GACbC,cACI,2GACJxrB,KAAI,SAAJA,OACIzC,KAAKguB,YAAcrzB,SAASwH,iBAAiBnC,KAAKiuB,eAClDjuB,KAAKkuB,kBACLluB,KAAKmuB,aAETD,gBAAe,SAAfA,kBAEI7f,EAAE,QACGqP,IAAI,GACJyM,MAAMiE,YAAY,kBAAmB/f,EAAE,WAAW2d,cAAgB,MAGvE3d,EAAE1E,QAAQ0kB,QAAO,WAEbhgB,EAAE,QACGqP,IAAI,GACJyM,MAAMiE,YAAY,kBAAmB/f,EAAE,WAAW2d,cAAgB,SAG3E3d,EAAE1T,UAAU6T,GAAG,eAAe,WAC1BH,EAAE,QACGqP,IAAI,GACJyM,MAAMiE,YAAY,kBAAmB/f,EAAE,WAAW2d,cAAgB,UAG/EmC,UAAS,SAATA,aACSriB,EAAGrR,KAAKwL,QAAU6F,EAAGrR,KAAKwL,OAAS,KAGxC8nB,EAAW,GAADvtB,OAAIR,KAAKiuB,cAAa,iCAAiC,CAACxE,kBAAkB,IACpFzpB,KAAKguB,YAAY70B,SAAQ,SAAUm1B,GAC/B,IAAMC,EAAgBD,EAAKrD,wBAC3BqD,EAAKnE,MAAMjR,KAAOqV,EAAcrV,KAAO,KACvCoV,EAAKnE,MAAM3Q,MAAQ+U,EAAc/U,MAAQ,KACzC8U,EAAKnE,MAAMxQ,MAAQhQ,OAAO6kB,WAAaD,EAAc5U,MAAQ,WAKzEtL,GAAE,WACEme,EAAO/pB,UA7Cf,CA+CGkgB,OAAQ7W,I,0sBCjCX,IAAM2iB,EAAO,QAGPC,EAAY,IAAHluB,OADE,YAGXmuB,EAAqBtgB,IAAEgR,GAAGoP,GAG1BG,EAAU,CACZC,UAAU,EACVC,UAAU,EACV1zB,OAAO,EACPmV,MAAM,GAGJwe,EAAc,CAChBF,SAAU,mBACVC,SAAU,UACV1zB,MAAO,UACPmV,KAAM,WAGJzG,EAAQ,CACVklB,KAAM,OAAFxuB,OAASkuB,GACbO,eAAgB,gBAAFzuB,OAAkBkuB,GAChCQ,OAAQ,SAAF1uB,OAAWkuB,GACjBS,KAAM,OAAF3uB,OAASkuB,GACbU,MAAO,QAAF5uB,OAAUkuB,GACfW,QAAS,UAAF7uB,OAAYkuB,GACnBY,OAAQ,SAAF9uB,OAAWkuB,GACjBa,cAAe,gBAAF/uB,OAAkBkuB,GAC/Bc,gBAAiB,kBAAFhvB,OAAoBkuB,GACnCe,gBAAiB,kBAAFjvB,OAAoBkuB,GACnCgB,kBAAmB,oBAAFlvB,OAAsBkuB,GACvCiB,eAAgB,QAAFnvB,OAAUkuB,GAASluB,OA9BhB,cAiCfovB,EACU,0BADVA,EAEkB,0BAFlBA,EAGQ,iBAHRA,EAII,aAJJA,GAKI,OALJA,GAMI,KANJA,GAOM,eAGNC,GACM,gBADNA,GAEU,cAFVA,GAGW,wBAHXA,GAIY,yBAJZA,GAKa,oDALbA,GAMc,cASdC,GAAK,WACP,SAAAA,MAAYnvB,EAASwQ,GAAQ4e,IAAA,KAAAD,OACzB9vB,KAAKgwB,QAAUhwB,KAAKiwB,WAAW9e,GAC/BnR,KAAKkwB,SAAWvvB,EAChBX,KAAKmwB,QAAUxvB,EAAQ/F,cAAci1B,IACrC7vB,KAAKowB,UAAY,KACjBpwB,KAAKqwB,UAAW,EAChBrwB,KAAKswB,oBAAqB,EAC1BtwB,KAAKuwB,sBAAuB,EAC5BvwB,KAAKwwB,kBAAmB,EACxBxwB,KAAKywB,gBAAkB,EAG3B,OAAAC,IAAAZ,MAAA,EAAApyB,IAAA,SAAA9D,MAYA,SAAAuV,OAAOwhB,GACH,OAAO3wB,KAAKqwB,SAAWrwB,KAAK8O,OAAS9O,KAAKuQ,KAAKogB,KAClD,CAAAjzB,IAAA,OAAA9D,MAED,SAAA2W,KAAKogB,GAAe,IAAAlf,EAAA,KAChB,IAAIzR,KAAKqwB,WAAYrwB,KAAKwwB,iBAA1B,CAIIniB,IAAErO,KAAKkwB,UAAU5gB,SAASsgB,MAC1B5vB,KAAKwwB,kBAAmB,GAG5B,IAAMI,EAAYviB,IAAEvE,MAAMA,EAAMqlB,KAAM,CAClCwB,kBAGJtiB,IAAErO,KAAKkwB,UAAU/vB,QAAQywB,GAErB5wB,KAAKqwB,UAAYO,EAAUpL,uBAI/BxlB,KAAKqwB,UAAW,EAEhBrwB,KAAK6wB,kBACL7wB,KAAK8wB,gBAEL9wB,KAAK+wB,gBAEL/wB,KAAKgxB,kBACLhxB,KAAKixB,kBAEL5iB,IAAErO,KAAKkwB,UAAU1hB,GAAG1E,EAAMylB,cAAeM,IAAuB,SAAA/vB,GAAK,OAAI2R,EAAK3C,KAAKhP,MAEnFuO,IAAErO,KAAKmwB,SAAS3hB,GAAG1E,EAAM4lB,mBAAmB,WACxCrhB,IAAEoD,EAAKye,UAAU1J,IAAI1c,EAAM2lB,iBAAiB,SAAA3vB,GACpCuO,IAAEvO,EAAMsC,QAAQqO,GAAGgB,EAAKye,YACxBze,EAAK8e,sBAAuB,SAKxCvwB,KAAKkxB,eAAc,kBAAMzf,EAAK0f,aAAaR,UAC9C,CAAAjzB,IAAA,OAAA9D,MAED,SAAAkV,KAAKhP,GAAO,IAAAsxB,EAAA,KAKR,GAJItxB,GACAA,EAAM8B,iBAGL5B,KAAKqwB,WAAYrwB,KAAKwwB,iBAA3B,CAIA,IAAMa,EAAYhjB,IAAEvE,MAAMA,EAAMklB,MAIhC,GAFA3gB,IAAErO,KAAKkwB,UAAU/vB,QAAQkxB,GAEpBrxB,KAAKqwB,WAAYgB,EAAU7L,qBAAhC,CAIAxlB,KAAKqwB,UAAW,EAChB,IAAMiB,EAAajjB,IAAErO,KAAKkwB,UAAU5gB,SAASsgB,IAgB7C,GAdI0B,IACAtxB,KAAKwwB,kBAAmB,GAG5BxwB,KAAKgxB,kBACLhxB,KAAKixB,kBAEL5iB,IAAE1T,UAAUoW,IAAIjH,EAAMulB,SAEtBhhB,IAAErO,KAAKkwB,UAAUzgB,YAAYmgB,IAE7BvhB,IAAErO,KAAKkwB,UAAUnf,IAAIjH,EAAMylB,eAC3BlhB,IAAErO,KAAKmwB,SAASpf,IAAIjH,EAAM4lB,mBAEtB4B,EAAY,CACZ,IAAMC,EAAqBC,IAAKC,iCAAiCzxB,KAAKkwB,UAEtE7hB,IAAErO,KAAKkwB,UACF1J,IAAIgL,IAAKE,gBAAgB,SAAA5xB,GAAK,OAAIsxB,EAAKO,WAAW7xB,MAClD8xB,qBAAqBL,QAE1BvxB,KAAK2xB,iBAEZ,CAAAj0B,IAAA,UAAA9D,MAED,SAAAi4B,UACI,CAACloB,OAAQ3J,KAAKkwB,SAAUlwB,KAAKmwB,SAASh3B,SAAQ,SAAA24B,GAAW,OAAIzjB,IAAEyjB,GAAa/gB,IAAI2d,MAOhFrgB,IAAE1T,UAAUoW,IAAIjH,EAAMulB,SAEtBhhB,IAAE0jB,WAAW/xB,KAAKkwB,SA1LT,YA4LTlwB,KAAKgwB,QAAU,KACfhwB,KAAKkwB,SAAW,KAChBlwB,KAAKmwB,QAAU,KACfnwB,KAAKowB,UAAY,KACjBpwB,KAAKqwB,SAAW,KAChBrwB,KAAKswB,mBAAqB,KAC1BtwB,KAAKuwB,qBAAuB,KAC5BvwB,KAAKwwB,iBAAmB,KACxBxwB,KAAKywB,gBAAkB,OAC1B,CAAA/yB,IAAA,eAAA9D,MAED,SAAAo4B,eACIhyB,KAAK+wB,kBAGT,CAAArzB,IAAA,aAAA9D,MAEA,SAAAq2B,WAAW9e,GAMP,OALAA,EAAM8gB,4BAAA,GACCrD,GACAzd,GAEPqgB,IAAKU,gBAAgBzD,EAAMtd,EAAQ4d,GAC5B5d,IACV,CAAAzT,IAAA,6BAAA9D,MAED,SAAAu4B,6BAA6B,IAAAC,EAAA,KACzB,GAA8B,WAA1BpyB,KAAKgwB,QAAQnB,SAAuB,CACpC,IAAMwD,EAAqBhkB,IAAEvE,MAAMA,EAAMmlB,gBAGzC,GADA5gB,IAAErO,KAAKkwB,UAAU/vB,QAAQkyB,GACrBA,EAAmBC,iBACnB,OAGJtyB,KAAKkwB,SAAS9wB,UAAUE,IAAIswB,IAE5B,IAAM2C,EAA0Bf,IAAKC,iCAAiCzxB,KAAKkwB,UAE3E7hB,IAAErO,KAAKkwB,UACF1J,IAAIgL,IAAKE,gBAAgB,WACtBU,EAAKlC,SAAS9wB,UAAUC,OAAOuwB,OAElCgC,qBAAqBW,GAC1BvyB,KAAKkwB,SAAS90B,aAEd4E,KAAK8O,SAEZ,CAAApR,IAAA,eAAA9D,MAED,SAAAu3B,aAAaR,GAAe,IAAA6B,EAAA,KAClBlB,EAAajjB,IAAErO,KAAKkwB,UAAU5gB,SAASsgB,IACvC6C,EAAYzyB,KAAKmwB,QAAUnwB,KAAKmwB,QAAQv1B,cAAci1B,IAAuB,KAE9E7vB,KAAKkwB,SAASj1B,YAAc+E,KAAKkwB,SAASj1B,WAAW0iB,WAAaC,KAAKC,cAExEljB,SAASuf,KAAKnT,YAAY/G,KAAKkwB,UAGnClwB,KAAKkwB,SAAS/F,MAAMuI,QAAU,QAC9B1yB,KAAKkwB,SAAStxB,gBAAgB,eAC9BoB,KAAKkwB,SAAS70B,aAAa,cAAc,GAErCgT,IAAErO,KAAKmwB,SAAS7gB,SAASsgB,IAAyB6C,EAClDA,EAAUjzB,UAAY,EAEtBQ,KAAKkwB,SAAS1wB,UAAY,EAG1B8xB,GACAE,IAAKmB,OAAO3yB,KAAKkwB,UAGrB7hB,IAAErO,KAAKkwB,UAAUxgB,SAASkgB,IAEtB5vB,KAAKgwB,QAAQ50B,OACb4E,KAAK4yB,gBAGT,IAAMC,EAAaxkB,IAAEvE,MAAMA,EAAMslB,MAAO,CACpCuB,kBAGEmC,EAAqB,SAArBA,qBACEN,EAAKxC,QAAQ50B,OACbo3B,EAAKtC,SAAS90B,QAElBo3B,EAAKhC,kBAAmB,EACxBniB,IAAEmkB,EAAKtC,UAAU/vB,QAAQ0yB,IAG7B,GAAIvB,EAAY,CACZ,IAAMC,EAAqBC,IAAKC,iCAAiCzxB,KAAKmwB,SAEtE9hB,IAAErO,KAAKmwB,SAAS3J,IAAIgL,IAAKE,eAAgBoB,GAAoBlB,qBAAqBL,QAElFuB,MAEP,CAAAp1B,IAAA,gBAAA9D,MAED,SAAAg5B,gBAAgB,IAAAG,EAAA,KACZ1kB,IAAE1T,UACGoW,IAAIjH,EAAMulB,SACV7gB,GAAG1E,EAAMulB,SAAS,SAAAvvB,GAEXnF,WAAamF,EAAMsC,QACnB2wB,EAAK7C,WAAapwB,EAAMsC,QACsB,IAA9CiM,IAAE0kB,EAAK7C,UAAU8C,IAAIlzB,EAAMsC,QAAQnJ,QAEnC85B,EAAK7C,SAAS90B,aAG7B,CAAAsC,IAAA,kBAAA9D,MAED,SAAAo3B,kBAAkB,IAAAiC,EAAA,KACVjzB,KAAKqwB,UAAYrwB,KAAKgwB,QAAQlB,SAC9BzgB,IAAErO,KAAKkwB,UAAU1hB,GAAG1E,EAAM0lB,iBAAiB,SAAA1vB,GA5ShC,KA6SHA,EAAMmR,OACNgiB,EAAKd,gCAGLnyB,KAAKqwB,UACbhiB,IAAErO,KAAKkwB,UAAUnf,IAAIjH,EAAM0lB,mBAElC,CAAA9xB,IAAA,kBAAA9D,MAED,SAAAq3B,kBAAkB,IAAAiC,EAAA,KACVlzB,KAAKqwB,SACLhiB,IAAE1E,QAAQ6E,GAAG1E,EAAMwlB,QAAQ,SAAAxvB,GAAK,OAAIozB,EAAKlB,aAAalyB,MAEtDuO,IAAE1E,QAAQoH,IAAIjH,EAAMwlB,UAE3B,CAAA5xB,IAAA,aAAA9D,MAED,SAAA+3B,aAAa,IAAAwB,EAAA,KACTnzB,KAAKkwB,SAAS/F,MAAMuI,QAAU,OAC9B1yB,KAAKkwB,SAAS70B,aAAa,eAAe,GAC1C2E,KAAKkwB,SAAStxB,gBAAgB,cAC9BoB,KAAKwwB,kBAAmB,EACxBxwB,KAAKkxB,eAAc,WACf7iB,IAAE1T,SAASuf,MAAMzK,YAAYmgB,GAC7BuD,EAAKC,oBACLD,EAAKE,kBACLhlB,IAAE8kB,EAAKjD,UAAU/vB,QAAQ2J,EAAMolB,aAEtC,CAAAxxB,IAAA,kBAAA9D,MAED,SAAA05B,kBACQtzB,KAAKowB,YACL/hB,IAAErO,KAAKowB,WAAW/wB,SAClBW,KAAKowB,UAAY,QAExB,CAAA1yB,IAAA,gBAAA9D,MAED,SAAAs3B,cAAc3kB,GAAU,IAAAgnB,EAAA,KACdtZ,EAAU5L,IAAErO,KAAKkwB,UAAU5gB,SAASsgB,IAAkBA,GAAiB,GAE7E,GAAI5vB,KAAKqwB,UAAYrwB,KAAKgwB,QAAQnB,SAAU,CA4BxC,GA3BA7uB,KAAKowB,UAAYz1B,SAASG,cAAc,OACxCkF,KAAKowB,UAAUxpB,UAAYgpB,EAEvB3V,GACAja,KAAKowB,UAAUhxB,UAAUE,IAAI2a,GAGjC5L,IAAErO,KAAKowB,WAAWlN,SAASvoB,SAASuf,MAEpC7L,IAAErO,KAAKkwB,UAAU1hB,GAAG1E,EAAMylB,eAAe,SAAAzvB,GACjCyzB,EAAKhD,qBACLgD,EAAKhD,sBAAuB,EAG5BzwB,EAAMsC,SAAWtC,EAAM8R,eAI3B2hB,EAAKpB,gCAGLlY,GACAuX,IAAKmB,OAAO3yB,KAAKowB,WAGrB/hB,IAAErO,KAAKowB,WAAW1gB,SAASkgB,KAEtBrjB,EACD,OAGJ,IAAK0N,EAED,YADA1N,IAIJ,IAAMinB,EAA6BhC,IAAKC,iCAAiCzxB,KAAKowB,WAE9E/hB,IAAErO,KAAKowB,WAAW5J,IAAIgL,IAAKE,eAAgBnlB,GAAUqlB,qBAAqB4B,QACvE,IAAKxzB,KAAKqwB,UAAYrwB,KAAKowB,UAAW,CACzC/hB,IAAErO,KAAKowB,WAAW3gB,YAAYmgB,IAE9B,IAAM6D,EAAiB,SAAjBA,iBACFF,EAAKD,kBACD/mB,GACAA,KAIR,GAAI8B,IAAErO,KAAKkwB,UAAU5gB,SAASsgB,IAAiB,CAC3C,IAAM4D,EAA6BhC,IAAKC,iCAAiCzxB,KAAKowB,WAE9E/hB,IAAErO,KAAKowB,WACF5J,IAAIgL,IAAKE,eAAgB+B,GACzB7B,qBAAqB4B,QAE1BC,SAEGlnB,GACPA,MAOR,CAAA7O,IAAA,gBAAA9D,MAEA,SAAAm3B,gBACI,IAAM2C,EAAqB1zB,KAAKkwB,SAASyD,aAAeh5B,SAASwwB,gBAAgBzrB,cAE5EM,KAAKswB,oBAAsBoD,IAC5B1zB,KAAKkwB,SAAS/F,MAAMyJ,YAAc,GAAHpzB,OAAMR,KAAKywB,gBAAe,OAGzDzwB,KAAKswB,qBAAuBoD,IAC5B1zB,KAAKkwB,SAAS/F,MAAM0J,aAAe,GAAHrzB,OAAMR,KAAKywB,gBAAe,SAEjE,CAAA/yB,IAAA,oBAAA9D,MAED,SAAAw5B,oBACIpzB,KAAKkwB,SAAS/F,MAAMyJ,YAAc,GAClC5zB,KAAKkwB,SAAS/F,MAAM0J,aAAe,KACtC,CAAAn2B,IAAA,kBAAA9D,MAED,SAAAi3B,kBACI,IAAMiD,EAAOn5B,SAASuf,KAAK+Q,wBAC3BjrB,KAAKswB,mBAAqBwD,EAAK5a,KAAO4a,EAAKna,MAAQhQ,OAAOyP,WAC1DpZ,KAAKywB,gBAAkBzwB,KAAK+zB,uBAC/B,CAAAr2B,IAAA,gBAAA9D,MAED,SAAAk3B,gBAAgB,IAAAkD,EAAA,KACZ,GAAIh0B,KAAKswB,mBAAoB,CAGzB,IAAM2D,EAAe,GAAG15B,MAAMD,KAAKK,SAASwH,iBAAiB0tB,KACvDqE,EAAgB,GAAG35B,MAAMD,KAAKK,SAASwH,iBAAiB0tB,KAG9DxhB,IAAE4lB,GAAcrlB,MAAK,SAACrQ,EAAOoC,GACzB,IAAMwzB,EAAgBxzB,EAAQwpB,MAAM0J,aAC9BO,EAAoB/lB,IAAE1N,GAASiZ,IAAI,iBACzCvL,IAAE1N,GACG1D,KAAK,gBAAiBk3B,GACtBva,IAAI,gBAAiB,GAAFpZ,OAAKid,WAAW2W,GAAqBJ,EAAKvD,gBAAe,UAIrFpiB,IAAE6lB,GAAetlB,MAAK,SAACrQ,EAAOoC,GAC1B,IAAM0zB,EAAe1zB,EAAQwpB,MAAMmK,YAC7BC,EAAmBlmB,IAAE1N,GAASiZ,IAAI,gBACxCvL,IAAE1N,GACG1D,KAAK,eAAgBo3B,GACrBza,IAAI,eAAgB,GAAFpZ,OAAKid,WAAW8W,GAAoBP,EAAKvD,gBAAe,UAInF,IAAM0D,EAAgBx5B,SAASuf,KAAKiQ,MAAM0J,aACpCO,EAAoB/lB,IAAE1T,SAASuf,MAAMN,IAAI,iBAC/CvL,IAAE1T,SAASuf,MACNjd,KAAK,gBAAiBk3B,GACtBva,IAAI,gBAAiB,GAAFpZ,OAAKid,WAAW2W,GAAqBp0B,KAAKywB,gBAAe,OAGrFpiB,IAAE1T,SAASuf,MAAMxK,SAASkgB,KAC7B,CAAAlyB,IAAA,kBAAA9D,MAED,SAAAy5B,kBAEI,IAAMY,EAAe,GAAG15B,MAAMD,KAAKK,SAASwH,iBAAiB0tB,KAC7DxhB,IAAE4lB,GAAcrlB,MAAK,SAACrQ,EAAOoC,GACzB,IAAM6zB,EAAUnmB,IAAE1N,GAAS1D,KAAK,iBAChCoR,IAAE1N,GAASoxB,WAAW,iBACtBpxB,EAAQwpB,MAAM0J,aAAeW,GAAoB,MAIrD,IAAMvvB,EAAW,GAAG1K,MAAMD,KAAKK,SAASwH,iBAAiB,GAAD3B,OAAIqvB,MAC5DxhB,IAAEpJ,GAAU2J,MAAK,SAACrQ,EAAOoC,GACrB,IAAM8zB,EAASpmB,IAAE1N,GAAS1D,KAAK,qBACT,IAAXw3B,GACPpmB,IAAE1N,GAASiZ,IAAI,eAAgB6a,GAAQ1C,WAAW,mBAK1D,IAAMyC,EAAUnmB,IAAE1T,SAASuf,MAAMjd,KAAK,iBACtCoR,IAAE1T,SAASuf,MAAM6X,WAAW,iBAC5Bp3B,SAASuf,KAAKiQ,MAAM0J,aAAeW,GAAoB,KAC1D,CAAA92B,IAAA,qBAAA9D,MAED,SAAAm6B,qBAEI,IAAMW,EAAY/5B,SAASG,cAAc,OACzC45B,EAAU9tB,UAAYgpB,EACtBj1B,SAASuf,KAAKnT,YAAY2tB,GAC1B,IAAMC,EAAiBD,EAAUzJ,wBAAwBzR,MAAQkb,EAAUE,YAE3E,OADAj6B,SAASuf,KAAKtX,YAAY8xB,GACnBC,KAGX,EAAAj3B,IAAA,UAAAggB,IAhbA,SAAAA,MACI,MA7EQ,UA8EX,CAAAhgB,IAAA,UAAAggB,IAED,SAAAA,MACI,OAAOkR,IACV,CAAAlxB,IAAA,mBAAA9D,MA4aD,SAAOi7B,iBAAiB1jB,EAAQwf,GAC5B,OAAO3wB,KAAK4O,MAAK,WACb,IAAI3R,EAAOoR,IAAErO,MAAM/C,KA/fd,YAggBC+yB,EAAOiC,0CAAA,GACNrD,GACAvgB,IAAErO,MAAM/C,QACW,WAAlBzD,IAAO2X,IAAuBA,EAASA,EAAS,IAQxD,GALKlU,IACDA,EAAO,IAAI6yB,MAAM9vB,KAAMgwB,GACvB3hB,IAAErO,MAAM/C,KAxgBP,WAwgBsBA,IAGL,iBAAXkU,EAAqB,CAC5B,QAA4B,IAAjBlU,EAAKkU,GACZ,MAAM,IAAI/W,UAAU,oBAADoG,OAAqB2Q,EAAM,MAElDlU,EAAKkU,GAAQwf,QACNX,EAAQzf,MACftT,EAAKsT,KAAKogB,UArdf,GAieXtiB,IAAE1T,UAAU6T,GAAG1E,EAAM6lB,eAAgBE,IAAsB,SAAU/vB,GAAO,IACpEsC,EADoE0yB,EAAA,KAElExxB,EAAWkuB,IAAKuD,uBAAuB/0B,MAEzCsD,IACAlB,EAASzH,SAASC,cAAc0I,IAGpC,IAAM6N,EAAS9C,IAAEjM,GAAQnF,KAriBZ,YAsiBP,SAAQg1B,4BAAA,GAED5jB,IAAEjM,GAAQnF,QACVoR,IAAErO,MAAM/C,QAGA,MAAjB+C,KAAK8hB,SAAoC,SAAjB9hB,KAAK8hB,SAC7BhiB,EAAM8B,iBAGV,IAAMsN,EAAUb,IAAEjM,GAAQokB,IAAI1c,EAAMqlB,MAAM,SAAAyB,GAClCA,EAAUpL,sBAKdtW,EAAQsX,IAAI1c,EAAMolB,QAAQ,WAClB7gB,IAAEymB,GAAMrkB,GAAG,aACXqkB,EAAK15B,cAKjB00B,GAAM+E,iBAAiBv6B,KAAK+T,IAAEjM,GAAS+O,EAAQnR,SASnDqO,IAAEgR,GAAGoP,GAAQqB,GAAM+E,iBACnBxmB,IAAEgR,GAAGoP,GAAMuG,YAAclF,GACzBzhB,IAAEgR,GAAGoP,GAAMwG,WAAa,WAEpB,OADA5mB,IAAEgR,GAAGoP,GAAQE,EACNmB,GAAM+E,kB,iDAGF/E,I,GC5lBLhN,GACAoS,GACAzY,GACAgE,G,w5BCMV,gC,+CACA,OADoB,YACpB,MADA,CAAoB,MAGpB,oC,+CACA,OADwB,gBACxB,UADA,CAAwB,MAGxB,kF,OACI,EAAA0U,eAAiB,IAAI,KAAkB,gDACvC,EAAAC,sBAAwB,IAAI,KAAkB,8CAC9C,EAAAC,uBAAyB,IAAI,KAAkB,sGAC/C,EAAAC,0BAA4B,IAAI,KAAkB,iD,EACtD,OALwB,gBAKxB,UALA,CAAwB,MAOxB,iF,OACI,EAAAH,eAA0C,GAC1C,EAAAC,sBAAkD,GAClD,EAAAC,uBAAkD,GAClD,EAAAC,0BAAsD,G,EAC1D,OALuB,eAKvB,SALA,CAAuB,MAiDR,GAtCf,WAII,kBAAqB52B,GAAA,KAAAA,UAgCzB,OA7BI,mBAAAgH,WAAA,WACI1F,KAAKiF,SAASS,WAAW1F,KAAKtB,SAC9BsB,KAAKmG,qBAGT,mBAAAA,kBAAA,sBACInG,KAAKiF,SAASkwB,eAAeh8B,SAAQ,SAACo8B,GAClCA,EAAMhzB,iBAAiB,QAAS,EAAKizB,0BAA0BxuB,KAAK,EAAMuuB,OAE9Ev1B,KAAKiF,SAASowB,uBAAuBl8B,SAAQ,SAAAs8B,GACzCA,EAASlzB,iBAAiB,SAAU,EAAKmzB,6BAA6B1uB,KAAK,EAAMyuB,QAI/E,mBAAAD,0BAAV,WACI,IAAMG,EAAa31B,KAAKiF,SAASkwB,eAAeS,MAAK,SAAAL,GAAS,MAAuB,KAAvBA,EAAM37B,MAAMuR,UAC1EnL,KAAK61B,wBAAwB71B,KAAKiF,SAASmwB,sBAAuBO,IAG5D,mBAAAD,6BAAV,WACI,IAAMI,EAAe91B,KAAKiF,SAASowB,uBAAuBO,MAAK,SAAAH,GAAY,OAAAA,EAASM,WACpF/1B,KAAK61B,wBAAwB71B,KAAKiF,SAASqwB,2BAA4BQ,IAGjE,mBAAAD,wBAAV,SAAkCrf,EAAsCwf,QAAtC,IAAAxf,MAAA,IAC9BA,EAAMrd,SAAQ,SAAA88B,GACVA,EAAOxrB,SAAWurB,MA/B1B,YADC,e,yBACuB,O,0CAFtBE,SAAQ,YADb,aAAkB,GAAWxqB,GAAUC,GAAWC,I,gCAKjBC,eAJ5BqqB,UAAN,G,kEDjCUpT,GAAQhX,GAAGgX,MACXoS,GAAiBv6B,SAASC,cAAc,wBACxC6hB,GAAeyY,IAAkBA,GAAe5qB,QAAQmS,aAAgB,kBACxEgE,GAAeyU,IAAkBA,GAAe5qB,QAAQmW,aAAgB,oBAC9EqC,GAAMrgB,KAAO,WACT,IAAMugB,EAAa3U,EAAE,eACjB2U,EAAW/pB,OACX+pB,EAAWpU,MAAK,WACZ,IACIqU,EADU5U,EAAErO,MACIwV,OAChBjW,EAAK8O,EAAErO,MAAMuP,KAAK,MACtBlB,EACI,uDACI9O,EACA,WACA0jB,EACA,oBACNC,SAAS,sBAGf7U,EAAE,kCAAkChP,SAExCyjB,GAAMC,KAAO1U,EACT,sHAEJyU,GAAMpU,WAEVoU,GAAM1H,SAAW,WACb,IACI0H,GAAMC,KAAK5H,IAAI,0BAA0BC,SAAS,CAC9CC,MAAO,EACPC,KAAM,OACNc,aAAa,EACbK,YAAaA,GACbgE,YAAaA,KAEnB,MAAO2C,GACLxH,QAAQnH,MAAM2O,KAGtBtX,GAAGgX,MAAQA,GEtCf,IAsBuBqT,GAtBV,SAAPA,KAAQrqB,GACV,IAAMsqB,EAAar8B,MAAMJ,UAAUY,MAAMD,KAAKK,SAASwH,iBAAiB,4DACpEk0B,EAASt8B,MAAMJ,UAAUY,MAAMD,KAAKK,SAASwH,iBAAiB,wBAEtE,IACYi0B,EAAWn9B,QACX6S,EAAG+W,UAAUpgB,KAAK2zB,GAExB,MAAOhT,GACLxH,QAAQnH,MAAM2O,GAGtB,IACYiT,EAAOp9B,QACP6S,EAAGgX,MAAMrgB,KAAK4zB,GAEpB,MAAOjT,GACLxH,QAAQnH,MAAM2O,KCgBC+S,I,oBA/BV,SAAPA,KAAQrqB,GACV,IAAMkc,EAAQjuB,MAAMJ,UAAUY,MAAMD,KAAKK,SAAS27B,uBAAuB,gBACrEzS,EAAS9pB,MAAMJ,UAAUY,MAAMD,KAAKK,SAAS27B,uBAAuB,iBACpEC,EAAiBx8B,MAAMJ,UAAUY,MAAMD,KAAKK,SAAS27B,uBAAuB,wBAEpF,IACYtO,EAAM/uB,QACN6S,EAAG0qB,KAAK/zB,KAAKulB,GAEnB,MAAO5E,GACLxH,QAAQnH,MAAM2O,GAGtB,IACYS,EAAO5qB,QACP6S,EAAG2X,MAAMhhB,KAAKohB,GAEpB,MAAOT,GACLxH,QAAQnH,MAAM2O,GAGtB,IACYmT,EAAet9B,QACf6S,EAAG4b,cAAcjlB,KAAK8zB,GAE5B,MAAOnT,GACLxH,QAAQnH,MAAM2O,MCgIH+S,UA5HN,SAAPA,KAAQrqB,GACV,IAAM2qB,EAAQ18B,MAAMJ,UAAUY,MAAMD,KAAKK,SAAS27B,uBAAuB,oBACrEI,EAAS38B,MAAMJ,UAAUY,MAAMD,KAAKK,SAAS27B,uBAAuB,UACpEK,EAAc58B,MAAMJ,UAAUY,MAAMD,KAAKK,SAAS27B,uBAAuB,uBACzEM,EAAa78B,MAAMJ,UAAUY,MAAMD,KAAKK,SAAS27B,uBAAuB,cACxEO,EAAc98B,MAAMJ,UAAUY,MAAMD,KAAKK,SAASwH,iBAAiB,+BACnE20B,EAAa/8B,MAAMJ,UAAUY,MAAMD,KAAKK,SAASwH,iBAAiB,yBAClE40B,EAAah9B,MAAMJ,UAAUY,MAAMD,KAAKK,SAAS27B,uBAAuB,gBACxEU,EAAYj9B,MAAMJ,UAAUY,MAAMD,KAAKK,SAAS27B,uBAAuB,mBACvEW,EAAel9B,MAAMJ,UAAUY,MAAMD,KAAKK,SAAS27B,uBAAuB,iBAC1EY,EAAqBn9B,MAAMJ,UAAUY,MAAMD,KAAKK,SAAS27B,uBAAuB,iBAChFa,EAAiBp9B,MAAMJ,UAAUY,MAAMD,KAAKK,SAAS27B,uBAAuB,qBAC5Ec,EAAer9B,MAAMJ,UAAUY,MAAMD,KAAKK,SAAS27B,uBAAuB,iBAElF,IACQxqB,EAAGC,eAAetJ,OACpB,MAAO2gB,GACLxH,QAAQnH,MAAM2O,GAGtB,IACYqT,EAAMx9B,QACN6S,EAAGnN,KAAK8D,KAAKg0B,GAEnB,MAAOrT,GACLxH,QAAQnH,MAAM2O,GAGtB,IACYsT,EAAOz9B,QACP6S,EAAGgE,MAAMrN,KAAKi0B,GAEpB,MAAOtT,GACLxH,QAAQnH,MAAM2O,GAGtB,IACYuT,EAAY19B,QACZ6S,EAAGoF,WAAWzO,KAAKk0B,GAEzB,MAAOvT,GACLxH,QAAQnH,MAAM2O,GAGtB,IACYwT,EAAW39B,QACX6S,EAAGiG,UAAUtP,KAAKm0B,GAExB,MAAOxT,GACLxH,QAAQnH,MAAM2O,GAGtB,IACYyT,EAAY59B,QACZ6S,EAAG+J,WAAWpT,KAAKo0B,GAEzB,MAAOzT,GACLxH,QAAQnH,MAAM2O,GAGtB,IACY0T,EAAW79B,QACX6S,EAAGqH,UAAU1Q,KAAKq0B,GAExB,MAAO1T,GACLxH,QAAQnH,MAAM2O,GAGtB,IACY2T,EAAW99B,QACX6S,EAAGiO,UAAUtX,KAAKs0B,GAExB,MAAO3T,GACLxH,QAAQnH,MAAM2O,GAGtB,IACY4T,EAAU/9B,SACV6S,EAAGoqB,SAAWc,EACTr6B,KAAI,SAAA4J,GAAI,OAAE,IAAI2vB,GAAS3vB,GAAMb,iBAExC,MAAO0d,GACLxH,QAAQnH,MAAM2O,GAGtB,IACY6T,EAAah+B,SACb6S,EAAGurB,YAAcJ,EACZt6B,KAAI,SAAA4J,GAAI,OAAE,IAAIiF,KAAYjF,GAAMb,iBAE3C,MAAO0d,GACLxH,QAAQnH,MAAM2O,GAGtB,IACY8T,EAAmBj+B,QACnB6S,EAAGwrB,kBAAkB70B,KAAKy0B,GAEhC,MAAO9T,GACLxH,QAAQnH,MAAM2O,GAGtB,IACY+T,EAAel+B,QACf6S,EAAGuO,cAAc5X,KAAK00B,GAE5B,MAAO/T,GACLxH,QAAQnH,MAAM2O,GAGtB,IACYgU,EAAan+B,QACb6S,EAAG4O,YAAYjY,KAAK20B,GAE1B,MAAOhU,GACLxH,QAAQnH,MAAM2O,GAGtBmU,GAAazrB,GAEb0rB,GAAe1rB,K,mBC7Jf,IAAI2rB,EAAgB,EAAQ,IAS5Bj0B,EAAOD,QARP,SAASm0B,gBAAgBr/B,EAAGK,EAAGN,GAC7B,OAAQM,EAAI++B,EAAc/+B,MAAOL,EAAIE,OAAOe,eAAejB,EAAGK,EAAG,CAC/DkB,MAAOxB,EACPS,YAAY,EACZgB,cAAc,EACdC,UAAU,IACPzB,EAAEK,GAAKN,EAAGC,GAEiBmL,EAAOD,QAAQo0B,YAAa,EAAMn0B,EAAOD,QAAiB,QAAIC,EAAOD","file":"js/vendors~lazy-imports-a58b2c408f262857a12d.js","sourcesContent":["var e,t;e=this,t=function(){\"use strict\";function e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function t(t){for(var n=1;ne.length)&&(t=e.length);for(var n=0,r=new Array(t);n=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(e){throw e},f:i}}throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}var s,u=!0,a=!1;return{s:function(){n=n.call(e)},n:function(){var e=n.next();return u=e.done,e},e:function(e){a=!0,s=e},f:function(){try{u||null==n.return||n.return()}finally{if(a)throw s}}}}(n.keys);try{for(l.s();!(c=l.n()).done;)a(c.value)}catch(e){l.e(e)}finally{l.f()}}else a()})),n.filter&&(i=n.filter(i));var s=i.slice(0,t.resultsList.maxResults);t.feedback={query:e,matches:i,results:s},f(\"results\",t)},m=\"aria-expanded\",b=\"aria-activedescendant\",y=\"aria-selected\",v=function(e,n){e.feedback.selection=t({index:n},e.feedback.results[n])},g=function(e){e.isOpen||((e.wrapper||e.input).setAttribute(m,!0),e.list.removeAttribute(\"hidden\"),e.isOpen=!0,f(\"open\",e))},w=function(e){e.isOpen&&((e.wrapper||e.input).setAttribute(m,!1),e.input.setAttribute(b,\"\"),e.list.setAttribute(\"hidden\",\"\"),e.isOpen=!1,f(\"close\",e))},O=function(e,t){var n=t.resultItem,r=t.list.getElementsByTagName(n.tag),o=!!n.selected&&n.selected.split(\" \");if(t.isOpen&&r.length){var s,u,a=t.cursor;e>=r.length&&(e=0),e<0&&(e=r.length-1),t.cursor=e,a>-1&&(r[a].removeAttribute(y),o&&(u=r[a].classList).remove.apply(u,i(o))),r[e].setAttribute(y,!0),o&&(s=r[e].classList).add.apply(s,i(o)),t.input.setAttribute(b,r[t.cursor].id),t.list.scrollTop=r[e].offsetTop-t.list.clientHeight+r[e].clientHeight+5,t.feedback.cursor=t.cursor,v(t,e),f(\"navigate\",t)}},A=function(e){O(e.cursor+1,e)},k=function(e){O(e.cursor-1,e)},L=function(e,t,n){(n=n>=0?n:e.cursor)<0||(e.feedback.event=t,v(e,n),f(\"selection\",e),w(e))};function j(e,n){var r=this;return new Promise((function(i,o){var s,u;return s=n||((u=e.input)instanceof HTMLInputElement||u instanceof HTMLTextAreaElement?u.value:u.innerHTML),function(e,t,n){return t?t(e):e.length>=n}(s=e.query?e.query(s):s,e.trigger,e.threshold)?d(e,s).then((function(n){try{return e.feedback instanceof Error?i():(h(s,e),e.resultsList&&function(e){var n=e.resultsList,r=e.list,i=e.resultItem,o=e.feedback,s=o.matches,u=o.results;if(e.cursor=-1,r.innerHTML=\"\",s.length||n.noResults){var c=new DocumentFragment;u.forEach((function(e,n){var r=a(i.tag,t({id:\"\".concat(i.id,\"_\").concat(n),role:\"option\",innerHTML:e.match,inside:c},i.class&&{class:i.class}));i.element&&i.element(r,e)})),r.append(c),n.element&&n.element(r,o),g(e)}else w(e)}(e),c.call(r))}catch(e){return o(e)}}),o):(w(e),c.call(r));function c(){return i()}}))}var S=function(e,t){for(var n in e)for(var r in e[n])t(n,r)},T=function(e){var n,r,i,o=e.events,s=(n=function(){return j(e)},r=e.debounce,function(){clearTimeout(i),i=setTimeout((function(){return n()}),r)}),u=e.events=t({input:t({},o&&o.input)},e.resultsList&&{list:o?t({},o.list):{}}),a={input:{input:function(){s()},keydown:function(t){!function(e,t){switch(e.keyCode){case 40:case 38:e.preventDefault(),40===e.keyCode?A(t):k(t);break;case 13:t.submit||e.preventDefault(),t.cursor>=0&&L(t,e);break;case 9:t.resultsList.tabSelect&&t.cursor>=0&&L(t,e);break;case 27:t.input.value=\"\",w(t)}}(t,e)},blur:function(){w(e)}},list:{mousedown:function(e){e.preventDefault()},click:function(t){!function(e,t){var n=t.resultItem.tag.toUpperCase(),r=Array.from(t.list.querySelectorAll(n)),i=e.target.closest(n);i&&i.nodeName===n&&L(t,e,r.indexOf(i))}(t,e)}}};S(a,(function(t,n){(e.resultsList||\"input\"===n)&&(u[t][n]||(u[t][n]=a[t][n]))})),S(u,(function(t,n){e[t].addEventListener(n,u[t][n])}))};function E(e){var n=this;return new Promise((function(r,i){var o,s,u;if(o=e.placeHolder,u={role:\"combobox\",\"aria-owns\":(s=e.resultsList).id,\"aria-haspopup\":!0,\"aria-expanded\":!1},a(e.input,t(t({\"aria-controls\":s.id,\"aria-autocomplete\":\"both\"},o&&{placeholder:o}),!e.wrapper&&t({},u))),e.wrapper&&(e.wrapper=a(\"div\",t({around:e.input,class:e.name+\"_wrapper\"},u))),s&&(e.list=a(s.tag,t({dest:[s.destination,s.position],id:s.id,role:\"listbox\",hidden:\"hidden\"},s.class&&{class:s.class}))),T(e),e.data.cache)return d(e).then((function(e){try{return c.call(n)}catch(e){return i(e)}}),i);function c(){return f(\"init\",e),r()}return c.call(n)}))}function x(e){var t=e.prototype;t.init=function(){E(this)},t.start=function(e){j(this,e)},t.unInit=function(){if(this.wrapper){var e=this.wrapper.parentNode;e.insertBefore(this.input,this.wrapper),e.removeChild(this.wrapper)}var t;S((t=this).events,(function(e,n){t[e].removeEventListener(n,t.events[e][n])}))},t.open=function(){g(this)},t.close=function(){w(this)},t.goTo=function(e){O(e,this)},t.next=function(){A(this)},t.previous=function(){k(this)},t.select=function(e){L(this,null,e)},t.search=function(e,t,n){return p(e,t,n)}}return function e(t){this.options=t,this.id=e.instances=(e.instances||0)+1,this.name=\"autoComplete\",this.wrapper=1,this.threshold=1,this.debounce=0,this.resultsList={position:\"afterend\",tag:\"ul\",maxResults:5},this.resultItem={tag:\"li\"},function(e){var t=e.name,r=e.options,i=e.resultsList,o=e.resultItem;for(var s in r)if(\"object\"===n(r[s]))for(var a in e[s]||(e[s]={}),r[s])e[s][a]=r[s][a];else e[s]=r[s];e.selector=e.selector||\"#\"+t,i.destination=i.destination||e.selector,i.id=i.id||t+\"_list_\"+e.id,o.id=o.id||t+\"_result\",e.input=u(e.selector)}(this),x.call(this,e),E(this)}},\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).autoComplete=t();\n","import AutoComplete from '@tarekraafat/autocomplete.js';\nimport {\n ComponentObject,\n ComponentSelectors,\n ComponentElements,\n ComponentService,\n ComponentInjector,\n ComponentSelector,\n UIComponent,\n Inject,\n BrowserUtils,\n Validator\n} from '@atypon/ui-utils';\n\nclass Texts extends ComponentObject { }\n\nclass ClassList extends ComponentObject {\n autocompleteResultItem = 'autoComplete__item';\n citationSearchJournalField = 'quick-search--citation__journal-search__input';\n citationSearch = 'quick-search--citation';\n hideAutoComplete = 'hide-auto-complete';\n}\n\nclass Selectors extends ComponentSelectors {\n qsAutocomplete = new ComponentSelector('input.auto-complete');\n qsForms = new ComponentSelector('[name=\"defaultQuickSearch\"],[name=\"thisJournalQuickSearch\"], [name=\"thisBookQuickSearch\"]');\n qsDropdowns = new ComponentSelector('.tab__nav__item__link');\n qsHeaderWrapper = new ComponentSelector('.quick-qsHeaderWrapper', 'document');\n qsSeriesKey = '[name=SeriesKey]';\n qsItems = '.quick-search__search-items';\n citationSearch = '.quick-search-pane__citation';\n autocompleteSelectedResultItem = '.autoComplete__item[aria-selected=\"true\"]';\n citationSearchJournalField = new ComponentSelector('.quick-search--citation__journal-search__input')\n citationSearchDoiField = new ComponentSelector('.quick-search--citation__journal-search__input__doi')\n citationSubmit = new ComponentSelector('.citation-search__submit');\n inputGroup = '.input-group'\n journalSearchHideAutocompleteWrapper = '.quick-search--citation__journal-search'\n autoCompleteWrapper = '.autoComplete_wrapper'\n}\n\nclass Elements extends ComponentElements {\n qsForms: Array = [];\n qsDropdowns: Array = [];\n qsAutocomplete: Array = [];\n qsHeaderWrapper: HTMLElement;\n citationSubmit: HTMLElement;\n citationSearchJournalField: HTMLInputElement;\n citationSearchDoiField: HTMLInputElement;\n}\n\n\ninterface QuickSearch extends ComponentService { }\n\ninterface QuickSearchURLParams {\n hs: string;\n pts: string;\n ptgs: string;\n ptfs: string;\n ts: string;\n cs: string;\n pt: string;\n}\n\ninterface AutoCompleteOptions {\n isSelectOnly: boolean\n}\n\nclass QuickSearchElm {\n constructor(public el: HTMLInputElement, public searchType: string, public seriesKey: string) { }\n}\n\n@ComponentInjector(Selectors, Elements, ClassList, Texts)\nclass QuickSearch implements UIComponent {\n @Inject()\n protected browserUtils: BrowserUtils;\n @Inject()\n protected validator: Validator;\n\n activeDropdownJournal: string;\n autcompleteInstances: Map;\n _URLParameters: QuickSearchURLParams;\n _autoCompleteOptions: AutoCompleteOptions;\n\n protected get autoCompleteOptions(): AutoCompleteOptions {\n return this._autoCompleteOptions;\n }\n\n // On/Off Autocomplete\n protected get isAutocompleteOn(): boolean {\n return true;\n }\n\n // Submit quick search if user pressed Enter without choosing an autocomplete value\n protected get submitWithoutChoosingValue(): boolean {\n return true;\n }\n\n // Reserve the user input when changing between different journals\n protected get reserveSearchInputOnJournalChange(): boolean {\n return false;\n }\n\n protected get activeJournalForm(): HTMLElement {\n return this.domUtils.getElement(`[aria-labelledby=\"#${this.activeDropdownJournal}\"] form`, this.elements.qsHeaderWrapper)\n }\n\n protected get journalCitationInputs(): NodeListOf{\n return this.domUtils.closest(this.selectors.inputGroup, this.elements.citationSearchDoiField).querySelectorAll('input')\n }\n\n protected get URLParameters(): QuickSearchURLParams {\n return {\n hs: 'historyItemsConf',\n pts: 'publicationTitlesConf',\n ptgs: 'groupTitlesConf',\n ptfs: 'publicationItemsConf',\n ts: 'topicsConf',\n cs: 'contributorsConf',\n pt: 'publicationTypesConf'\n }\n }\n\n constructor(readonly wrapper: HTMLElement) { }\n\n initialize(): void {\n this._URLParameters = this.URLParameters;\n this.setAutoCompleteOptions();\n this.setActiveJournal();\n this.elements.initialize(this.wrapper);\n if (this.elements.qsAutocomplete.length && this.isAutocompleteOn && !this.browserUtils.isIE) {\n this.initAutocomplete();\n }\n this.addEventListeners();\n this.domUtils.getElements(this.selectors.autoCompleteWrapper).forEach((element, i) => {\n element.setAttribute('aria-label', 'Enter a text or select an option');\n })\n }\n\n /**\n * Set activeDropdownJournal to default \"Anywhere\"\n *\n */\n setActiveJournal() {\n this.activeDropdownJournal = this.domUtils.getElement(`${this.selectors.qsItems} > div`)\n ?.getAttribute('aria-labelledby')\n ?.replace(/[#]/, '');\n }\n\n setAutoCompleteOptions() {\n this._autoCompleteOptions = { isSelectOnly: false };\n }\n\n protected elementRenderer(item, data) {\n let ele;\n\n if (this.autoCompleteOptions.isSelectOnly === true) {\n ele = document.createElement('div');\n } else {\n ele = document.createElement('a');\n ele.href = data.value.url;\n }\n\n ele.className = \"autoComplete__link--grid\";\n ele.innerHTML = `${data.value.highlight}`;\n // TODO, fix the global var declaration.\n // @ts-ignore\n if (data.value.paramFormatted && config.enableAutoCompleteCategory) {\n ele.innerHTML = `${data.value.paramFormatted} ${ele.innerHTML}`;\n }\n item.setAttribute('aria-label', ele.innerText);\n item.innerHTML = '';\n item.appendChild(ele);\n }\n\n protected get defaultConfigs() {\n return {\n threshold: 2,\n debounce: 300,\n resultItem: {\n element: this.elementRenderer.bind(this),\n class: `${this.classList.autocompleteResultItem} my-2`\n },\n searchEngine: (query, record) => {\n return record.highlight || record.label;\n },\n }\n }\n\n protected getConfigs(quickSearchElm: QuickSearchElm, autoCompleteObj: AutoComplete) {\n return {\n data: {\n src: async () => {\n const url = this.buildFetchURL(quickSearchElm);\n if (url) {\n const data = await fetch(url);\n return await data.json();\n } else {\n return [];\n }\n },\n cache: false\n },\n selector: () => quickSearchElm.el,\n resultsList: this.resultListConfig(quickSearchElm),\n ...this.defaultConfigs\n }\n }\n\n protected handleAutoCompleteOptions(ele: HTMLElement) {\n // check if it's a citation field, if yes, then autoCompleteOptions.isSelectOnly should be true\n // meaning clicking on autocomplete items will just copy the text\n this.autoCompleteOptions.isSelectOnly = this.domUtils.containsClasses(ele, this.classList.citationSearchJournalField)\n }\n\n protected initAutoCompleteInstance(quickSearchElm: QuickSearchElm): AutoComplete {\n this.handleAutoCompleteOptions(quickSearchElm.el);\n let autoCompleteObj: AutoComplete = {};\n const configs = this.getConfigs(quickSearchElm, autoCompleteObj);\n autoCompleteObj = new AutoComplete(configs);\n this.domUtils.addEventListener(quickSearchElm.el, 'selection', this.onSelection.bind(this));\n return autoCompleteObj;\n }\n\n\n protected resultListConfig(quickSearchElm: QuickSearchElm) {\n return {\n maxResults: 10,\n render: true,\n idName: 'autoComplete-' + Math.ceil(Math.random() * 10000),\n class: 'autoComplete rlist',\n destination: () => this.resultListDestination(quickSearchElm)\n }\n }\n\n protected resultListDestination(quickSearchElm: QuickSearchElm) {\n if (this.domUtils.closest(this.selectors.citationSearch, quickSearchElm.el)) {\n return quickSearchElm.el.parentElement;\n }\n return quickSearchElm.el.parentElement.parentElement;\n }\n\n\n protected initAutocomplete() {\n this.autcompleteInstances = new Map();\n this.elements.qsAutocomplete.forEach((element, i) => {\n element.setAttribute('type', 'search');\n let quickSearchElm = new QuickSearchElm(element, null, null);\n\n // check if the search element is in a specific journal or anywhere and update it accordingly\n if (element.parentElement.classList.contains('option-journal')) {\n quickSearchElm.seriesKey = this.domUtils.getElement(this.selectors.qsSeriesKey, element.parentElement)?.value;\n quickSearchElm.searchType = 'journal';\n }\n\n this.autcompleteInstances.set(\n quickSearchElm,\n this.initAutoCompleteInstance(quickSearchElm)\n );\n });\n }\n\n addEventListeners(): void {\n if (this.isAutocompleteOn && !this.browserUtils.isIE) {\n this.elements.qsAutocomplete.forEach(input => {\n input.addEventListener('keydown', this.onKeyDown.bind(this, input));\n });\n }\n\n this.elements.qsForms.forEach(form => {\n form.addEventListener('submit', this.onFormSubmit.bind(this, form));\n })\n\n if (this.elements.qsDropdowns && this.elements.qsDropdowns.length > 0) {\n this.elements.qsDropdowns.forEach(item => {\n item.addEventListener('click', this.handleDropdownCollapse.bind(this, item));\n })\n }\n\n this.registerCitationSearchEvents();\n this.autocompleteAnnouncer();\n }\n\n protected autocompleteAnnouncer(): void {\n const announcerContainer = document.querySelector('.advanced-search__autocomplete__announcer');\n const autocompleteLists = document.querySelectorAll('[id^=\"autoComplete_list_\"]');\n const mutationCallback = function(mutationsList) {\n mutationsList.forEach(mutation => {\n if(mutation.target.children.length){\n announcerContainer.innerHTML = `${mutation.target.children.length} results are available, use up and down arrow keys to navigate.`\n } else {\n announcerContainer.innerHTML = `No results are available.`\n }\n });\n };\n const observer = new MutationObserver(mutationCallback);\n autocompleteLists.forEach(element => {\n observer.observe(element, { childList: true });\n });\n }\n\n\n protected onFormSubmit(form: HTMLFormElement, e: Event) {\n const inputValue = this.domUtils.getElement(this.selectors.qsAutocomplete.selector, form)?.value;\n if (inputValue === '') {\n window.location.href = '/search/advanced';\n e.preventDefault();\n } else {\n form.submit()\n }\n }\n\n protected onSelection(event: CustomEvent & { target: HTMLInputElement }) {\n if (this.autoCompleteOptions.isSelectOnly === true) {\n // set input field value to the label of the clicked autocomplete item\n event.target.value = event.detail.selection.value.label;\n } else {\n window.location.href = event.detail.selection.value.url;\n }\n }\n\n\n protected onKeyDown(input: HTMLInputElement, e: KeyboardEvent,) {\n if (e.keyCode === 13) {\n // this is necessary since the autocomplete plugin prevents default on Enter\n const submitForm = () => this.domUtils.closest('form', input).dispatchEvent(new Event('submit', { bubbles: true, cancelable: true }));\n if (this.submitWithoutChoosingValue) {\n if (this.domUtils.getElement(this.selectors.autocompleteSelectedResultItem, this.wrapper)) {\n return\n }\n return submitForm()\n } else if (input.value !== '') {\n return\n }\n submitForm()\n }\n }\n\n protected handleDropdownCollapse(item: HTMLElement, e: Event) {\n const selectedItemId = item.id;\n if (this.activeDropdownJournal === selectedItemId) {\n // prevent collapse default behavior of collapsing the menu when pressing on it again\n item.removeAttribute('data-toggle');\n setTimeout(() => {\n item.setAttribute('data-toggle', 'collapse');\n }, 0);\n } else {\n if (this.reserveSearchInputOnJournalChange) {\n if (this.activeJournalForm) {\n const input = this.domUtils.getElement(this.selectors.qsAutocomplete.selector, this.activeJournalForm);\n this.activeDropdownJournal = selectedItemId;\n input.value = input.value; // huh?\n }\n } else {\n this.activeDropdownJournal = selectedItemId;\n }\n }\n }\n\n protected registerCitationSearchEvents() {\n if (!this.domUtils.containsClasses(this.wrapper, this.classList.citationSearch)) {\n return\n }\n\n this.domUtils.addEventListener(this.elements.qsAutocomplete, 'input', this.changeSubmitButtonState.bind(this));\n\n this.domUtils.addEventListener(this.elements.citationSearchDoiField, 'input', this.changeSubmitButtonState.bind(this));\n this.domUtils.addEventListener(this.elements.citationSearchDoiField, 'input', this.onCitationSearchDoiField.bind(this));\n\n this.changeSubmitButtonState(); // initial check to enable submit button if the fields have a valid value from the JSON\n }\n\n protected onCitationSearchDoiField() {\n let ele = this.elements.citationSearchDoiField,\n hasValue = ele.value !== \"\";\n\n ele.setAttribute('name', hasValue ? ele.dataset.name : \"\"); // remove DOI field name/value from submit payload unless it has a valid value\n\n this.journalCitationInputs.forEach((input) => {\n if (\n input.getAttribute('name') === \"quickLinkDoi\" ||\n input.getAttribute('data-name') === \"quickLinkDoi\" ||\n input.getAttribute('name') === \"quickLink\"\n ) {\n return;\n }\n if (input.getAttribute('name') === \"quickLinkJournal\") {\n this.domUtils.toggleClasses(\n this.domUtils.closest(this.selectors.journalSearchHideAutocompleteWrapper, input),\n this.classList.hideAutoComplete,\n hasValue\n ) // this is to hide autocomplete suggestions, as they sometimes render after you've already written something\n // in the DOI field, and you can't hide them unless you **select journal field > click somewhere else to\n // blur it**, and you can't do this as that field is disabled\n }\n input.disabled = hasValue; // disabled all other fields if the DOI one has a valid value\n })\n }\n\n protected changeSubmitButtonState() {\n let allEmpty = true;\n\n if (\n this.validator.isNotEmpty(this.elements.citationSearchJournalField) ||\n this.validator.isNotEmpty(this.elements.citationSearchDoiField)\n ) {\n allEmpty = false;\n }\n\n // enable if at least one main field has a valid value\n if (allEmpty) {\n this.elements.citationSubmit.setAttribute('disabled', 'true');\n } else {\n this.elements.citationSubmit.removeAttribute('disabled');\n }\n }\n\n protected buildFetchURL(element: QuickSearchElm) {\n const parameters = Object.entries(this.URLParameters).reduce((acc, [key, prop]) => {\n const value = element.el.dataset[prop];\n if (value) {\n acc.push(`${key}=${value}`);\n }\n return acc;\n }, []);\n const term = element.el.value.trim().replace(/\\s\\s+/g, ' ');\n if (\n term.split(' ').length >= parseInt(element.el.dataset.autoCompleteMaxWords) ||\n term.length >= parseInt(element.el.dataset.autoCompleteMaxChars)\n ) {\n return '';\n }\n // title-auto-complete maybe should be used for citation but it hasn't been used in literatum for quite a while\n return `/action/doSuggest?target=auto-complete&query=${encodeURIComponent(term)}&${parameters.join(\n '&'\n )}&fl=PubID${element.searchType === 'journal' ? '&within=' + element.seriesKey : ''}`;\n }\n}\n\nexport default QuickSearch;\n\nexport {\n Elements as QuickSearchElements,\n Selectors as QuickSearchSelectors,\n ClassList as QuickSearchClassList,\n Texts as QuickSearchTexts,\n AutoCompleteOptions as QuickSearchAutoCompleteOptions,\n QuickSearchElm\n}","(function () {\n UX.noFocusableSVG = {\n init: function () {\n if (UX.test.isIE) {\n const svgs = document.getElementsByTagName('svg');\n let i = svgs.length;\n while (i--) {\n svgs[i].setAttribute('focusable', false);\n }\n }\n },\n };\n})();\n","/**\n * Observe changes in the DOM of a specified element.\n *\n * @param {Element} obj - The DOM element to observe for changes.\n * @param {boolean} withMutations - A flag to control detailed mutation information.\n * @param {MutationObserverInit} [observerOptions] - Options for the MutationObserver.\n * @param {function} callback - The function to call when DOM changes occur.\n */\nwindow.observeDOM = (function () {\n let MutationObserver = window.MutationObserver || window.WebKitMutationObserver,\n eventListenerSupported = window.addEventListener;\n\n return function (obj, withMutations, observerOptions, callback) {\n if (MutationObserver) {\n let obs = new MutationObserver(function (mutations) {\n if (withMutations) {\n callback(mutations);\n } else {\n if (mutations[0].addedNodes.length || mutations[0].removedNodes.length) callback();\n }\n });\n let options = observerOptions || {\n childList: true,\n subtree: true,\n attributes: true,\n };\n if (obj) {\n obs.observe(obj, options);\n }\n } else if (eventListenerSupported) {\n obj.addEventListener('DOMNodeInserted', callback, false);\n obj.addEventListener('DOMNodeRemoved', callback, false);\n }\n };\n})();\n","/*eslint-disable*/\n(function () {\n /*\\\n |*|\n |*| :: cookies.js ::\n |*|\n |*| A complete cookies reader/writer framework with full unicode support.\n |*|\n |*| Revision #1 - September 4, 2014\n |*|\n |*| https://developer.mozilla.org/en-US/docs/Web/API/document.cookie\n |*| https://developer.mozilla.org/User:fusionchess\n |*| https://github.com/madmurphy/cookies.js\n |*|\n |*| This framework is released under the GNU Public License, version 3 or later.\n |*| http://www.gnu.org/licenses/gpl-3.0-standalone.html\n |*|\n |*| Syntaxes:\n |*|\n |*| * docCookies.setItem(name, value[, end[, path[, domain[, secure]]]])\n |*| * docCookies.getItem(name)\n |*| * docCookies.removeItem(name[, path[, domain]])\n |*| * docCookies.hasItem(name)\n |*| * docCookies.keys()\n |*|\n \\*/\n\n var cookies = {\n getItem: function (sKey) {\n if (!sKey) {\n return null;\n }\n return (\n decodeURIComponent(\n document.cookie.replace(\n new RegExp(\n '(?:(?:^|.*;)\\\\s*' +\n encodeURIComponent(sKey).replace(/[\\-\\.\\+\\*]/g, '\\\\$&') +\n '\\\\s*\\\\=\\\\s*([^;]*).*$)|^.*$'\n ),\n '$1'\n )\n ) || null\n );\n },\n setItem: function (sKey, sValue, vEnd, sPath, sDomain, bSecure) {\n if (!sKey || /^(?:expires|max\\-age|path|domain|secure)$/i.test(sKey)) {\n return false;\n }\n var sExpires = '';\n if (vEnd) {\n switch (vEnd.constructor) {\n case Number:\n sExpires = vEnd === Infinity ? '; expires=Fri, 31 Dec 9999 23:59:59 GMT' : '; max-age=' + vEnd;\n break;\n case String:\n sExpires = '; expires=' + vEnd;\n break;\n case Date:\n sExpires = '; expires=' + vEnd.toUTCString();\n break;\n }\n }\n document.cookie =\n encodeURIComponent(sKey) +\n '=' +\n encodeURIComponent(sValue) +\n sExpires +\n (sDomain ? '; domain=' + sDomain : '') +\n (sPath ? '; path=' + sPath : '') +\n (bSecure ? '; secure' : '');\n return true;\n },\n removeItem: function (sKey, sPath, sDomain) {\n if (!this.hasItem(sKey)) {\n return false;\n }\n document.cookie =\n encodeURIComponent(sKey) +\n '=; expires=Thu, 01 Jan 1970 00:00:00 GMT' +\n (sDomain ? '; domain=' + sDomain : '') +\n (sPath ? '; path=' + sPath : '');\n return true;\n },\n hasItem: function (sKey) {\n if (!sKey) {\n return false;\n }\n return new RegExp('(?:^|;\\\\s*)' + encodeURIComponent(sKey).replace(/[\\-\\.\\+\\*]/g, '\\\\$&') + '\\\\s*\\\\=').test(\n document.cookie\n );\n },\n keys: function () {\n var aKeys = document.cookie\n .replace(/((?:^|\\s*;)[^\\=]+)(?=;|$)|^\\s*|\\s*(?:\\=[^;]*)?(?:\\1|$)/g, '')\n .split(/\\s*(?:\\=[^;]*)?;\\s*/);\n for (var nLen = aKeys.length, nIdx = 0; nIdx < nLen; nIdx++) {\n aKeys[nIdx] = decodeURIComponent(aKeys[nIdx]);\n }\n return aKeys;\n },\n };\n\n UX.cookies = cookies;\n})();\n","(function () {\n let $body = $('body');\n\n let list = {\n expandIcon: 'icon-add_box',\n collapseIcon: 'icon-squared-minus',\n\n init: function () {\n list.on.build();\n list.control();\n },\n control: function () {\n $body.on('click', '.expandable-list__toggle', function (e) {\n e.preventDefault();\n list.on.toggleList($(this));\n });\n },\n on: {\n build: function () {\n let $wrapper = $('.expandable-list');\n\n $wrapper.each(function () {\n let $target = $(this).find('.expandable-list__body');\n $target.hide();\n });\n },\n\n toggleList: function (elem) {\n let $toggle = elem,\n $wrapper = $toggle.closest('.expandable-list'),\n $target = $wrapper.children('.expandable-list__body').toggle();\n list.defineToggleIcons($wrapper);\n\n $wrapper.toggleClass('js--open');\n $toggle.find('i').toggleClass(list.expandIcon + ' ' + list.collapseIcon);\n\n if ($wrapper.hasClass('js--open')) {\n $toggle.attr('aria-expanded', true);\n $target.attr('aria-hidden', false);\n } else {\n $toggle.attr('aria-expanded', false);\n $target.attr('aria-hidden', true);\n }\n },\n closeList: function (elem) {\n let $wrapper = $('.expandable-list');\n list.defineToggleIcons($wrapper);\n $wrapper.removeClass('js--open');\n let $target = $wrapper.children('.expandable-list__body').hide();\n let $toggle = $('.expandable-list__toggle');\n\n $toggle\n .attr('aria-expanded', 'false')\n .find('i')\n .addClass(list.expandIcon)\n .removeClass(list.collapseIcon);\n $target.attr('aria-hidden', true);\n },\n },\n defineToggleIcons($expandableList) {\n if ($expandableList.data('expand-icon') !== undefined && $expandableList.data('expand-icon') !== '') {\n list.expandIcon = $expandableList.data('expand-icon');\n }\n\n if ($expandableList.data('collapse-icon') !== undefined && $expandableList.data('collapse-icon') !== '') {\n list.collapseIcon = $expandableList.data('collapse-icon');\n }\n },\n };\n\n UX.list = list; // add to global namespace\n})();\n","(function () {\n var $body = $('body'),\n $window = $(window),\n tabKey = 9,\n shift = 16;\n\n var modal = {\n $toggle: $('[data-toggle=\"modal\"]'),\n $target: null,\n revers: false,\n lastItem: null,\n items: null,\n $close: null,\n accessibilityEnabled: true,\n\n init: function () {\n if (this.accessibilityEnabled) modal.accessibility.init();\n modal.$target = $(modal.$toggle.data('target'));\n modal.control();\n },\n accessibility: {\n init: function () {\n // Move every modal outside of content in order to be able hide and show page content for screen readers\n // @note: for some reason, it is not working with tab trap correctly, when we append it to body - after(.content) works fine\n var $content = $('main.content');\n if ($content.length) {\n $content.after($('.ux-modal-container'));\n }\n // Text for close buttons\n $('[data-dismiss=\"modal\"]').append('Close modal');\n },\n show: function () {\n $('.content, .footer, .header').attr('aria-hidden', true);\n },\n hide: function () {\n $('.content, .footer, .header').removeAttr('aria-hidden');\n },\n },\n control: function () {\n $body.on('click', '[data-toggle=\"modal\"]', function (e) {\n e.preventDefault();\n modal.$toggle = $(this);\n modal.$target = $(modal.$toggle.data('target'));\n modal.$close = modal.$target.find('.close');\n modal.items = modal.$target.find('a, button, input');\n modal.items.each(function (index) {\n if (index === modal.items.length - 1) {\n modal.lastItem = $(this);\n }\n });\n modal.on.show();\n });\n\n $body.on('click', '.modal', function (e) {\n var target = $(e.target);\n if (!target.is('.modal__dialog') && !target.closest('.modal__dialog').length > 0) {\n //e.preventDefault();\n modal.on.hide();\n }\n });\n\n $body.on('click', '[data-dismiss=\"modal\"]', function (e) {\n modal.on.hide();\n });\n\n $('.modal').on('keydown', modal.focusCycle.bind(modal));\n\n $window.on('keyup', function (e) {\n if (e.keyCode === shift) {\n modal.revers = false;\n }\n });\n },\n on: {\n show: function (e) {\n if (typeof UX.controller !== 'undefined') {\n UX.controller.check();\n }\n setTimeout(function () {\n $body.attr('data-active', 'modal');\n modal.accessibility.show();\n const $autofocus = modal.$target.find('[autofocus]');\n if ($autofocus.length) $autofocus.focus();\n else modal.$close.focus();\n }, 250);\n modal.$target.closest(\"[class*='sticko']\").addClass('js--open');\n $('#externalEmailDialogForm').addClass('pairing-management-modal');\n },\n hide: function () {\n $body.removeAttr('data-active');\n modal.accessibility.hide();\n modal.$target.closest(\"[class*='sticko']\").removeClass('js--open');\n },\n tab: function () {\n modal.$close.off('focusout');\n modal.lastItem.off('focusout');\n modal.lastItem.on('focusout', function () {\n modal.$close.focus();\n });\n },\n tabRevers: function () {\n modal.lastItem.off('focusout');\n modal.$close.off('focusout');\n modal.$close.on('focusout', function () {\n modal.lastItem.focus();\n });\n },\n },\n focusCycle: function (e) {\n if (e.keyCode === shift) {\n modal.revers = true;\n }\n\n if ((e.keyCode || e.which) === tabKey) {\n if (!modal.revers) {\n modal.on.tab();\n } else {\n modal.on.tabRevers();\n }\n }\n },\n };\n\n UX.modal = modal; // add to global namespace\n})();\n","(function () {\n const $body = $('body');\n UX.alertPopup = {\n config: {\n $toggle: '[data-toggle=\"alert\"]',\n $target: null,\n $actions: null,\n $approve: '[data-action=\"approve\"]',\n $cancel: '[data-action=\"cancel\"]',\n $url: null,\n },\n init: function () {\n if (config.enableAlertPopupAccessibility) this.accessibility.init();\n this.set();\n this.controls();\n },\n accessibility: {\n init: function () {\n let $content = $('main.content');\n if ($content.length) {\n $content.after($('.ux-modal-alert'));\n }\n },\n show: function () {\n $('.content, .footer, .header').attr('aria-hidden', true);\n },\n hide: function () {\n $('.content, .footer, .header').removeAttr('aria-hidden');\n },\n },\n set: function () {\n this.config.$actions = document.querySelectorAll(this.config.$toggle);\n this.config.$approve = document.querySelectorAll(this.config.$approve);\n this.config.$cancel = document.querySelectorAll(this.config.$cancel);\n },\n controls: function () {\n this.config.$actions.forEach(action => {\n action.addEventListener('click', e => {\n this.onClick(e);\n });\n });\n this.config.$approve.forEach(action => {\n action.addEventListener('click', e => {\n this.action();\n });\n });\n this.config.$cancel.forEach(action => {\n action.addEventListener('click', e => {\n this.hide($(action).closest('.alert'));\n });\n });\n },\n onClick: function (e) {\n e.preventDefault();\n this.config.$target = e.currentTarget.getAttribute('data-target');\n this.config.$url = e.currentTarget.href;\n this.show(this.config.$target);\n },\n redirect: function (value) {\n window.location.href = value;\n },\n show: function (target) {\n $body.attr('data-active', 'modal');\n this.accessibility.show();\n $(target).addClass('js--open');\n $(target).attr('open', true);\n },\n hide: function (target) {\n this.accessibility.hide();\n $(target).removeClass('js--open');\n $(target).removeAttr('open');\n },\n action: function () {\n this.redirect(this.config.$url);\n },\n };\n})();\n","(function () {\n var $body = $('body'),\n isMobile = false;\n\n var accordion = {\n $elements: $('.accordion'),\n $tabbedElements: $('.accordion-tabbed'),\n $controllers: $('.accordion__control'), //@todo: remove ambiguous DOM searches for elements that are unused and move other into init function\n $tabbedControllers: $('.accordion-tabbed__control'),\n isMobile: false,\n isStickyBody: false,\n vPort: 'screen-sm',\n $responsiveElements: $('[data-accordion-vport]'),\n accVport: [],\n $responsiveTarget: [],\n collapseTabs: false,\n collapseAccordion: true, // collapse accordion on open new accordion\n defaultCollapsed: true, // collapse accordion on pageload\n hideAllBoolean: true,\n openedAccordion: 0,\n hideDropBlock: true,\n\n init: function () {\n accordion.initResponsive();\n accordion.logic($('.accordion-tabbed')); // collapse all accordions on page load\n accordion.control();\n accordion.additionalControls();\n },\n additionalControls: function () {},\n control: function () {\n $body.on('click', '.accordion__control', function (e) {\n e.stopImmediatePropagation();\n // This check is needed on Safari browser in order to close the dropblock if its opened\n if ($body.attr('data-active') === 'dropBlock' && accordion.hideDropBlock) {\n UX.dropBlock.on.hide();\n }\n const attr = $(this).is('[data-slide-target]');\n // Check if its external link or if its slide controll and mobile view port\n if ($(this).hasClass('external') || (typeof attr !== typeof undefined && attr !== false && isMobile)) {\n return; // do nothing\n } else {\n e.preventDefault();\n const $this = $(this);\n accordion.on.toggle.single($this);\n }\n\n $(this).trigger('accordion:controlClick');\n });\n if (config.enableAccordionTypeSingle || config.enableAccordionTypeSubsection) {\n $body.on('click', '.accordion-tabbed__control', function (e) {\n const attr = $(this).is('[data-slide-target]');\n // Check if its external link or if its slide controll and mobile view port or prevent accordion behavior\n if (\n $(this).hasClass('external') ||\n (typeof attr !== typeof undefined && attr !== false && isMobile) ||\n accordion.preventAccordionBehavior($(this))\n ) {\n return; // do nothing\n } else {\n e.preventDefault();\n const $this = $(this);\n accordion.on.toggle.tabbed($this);\n }\n });\n }\n\n if (config.enableAccordionExpandAll) {\n $body.on('click', '.expand-all', function (e) {\n e.preventDefault();\n const $this = $(this);\n accordion.on.toggle.all($this);\n });\n }\n\n $(document).on(accordion.vPort + '-on', function () {\n // Waiting for custom event that will be triggered by controller.js to activate responsive effects\n isMobile = true;\n });\n\n $(document).on(accordion.vPort + '-off', function () {\n // Waiting for custom event that will be triggered by controller.js to deactivate responsive effects\n isMobile = false;\n });\n },\n logic: function (elem) {\n if (accordion.hideAllBoolean) {\n accordion.hideAll();\n }\n\n accordion.$tabbedElements = elem;\n\n accordion.$tabbedElements.each(function () {\n var $this = $(this),\n parentAccordion = $this.closest('.accordion');\n\n if (parentAccordion.parent('[data-default-collapsed]').length) {\n accordion.defaultCollapsed = parentAccordion.parent().data('default-collapsed');\n }\n\n $this.find('.accordion-tabbed__tab').each(function (index) {\n var $this = $(this);\n if (accordion.defaultCollapsed || accordion.defaultCollapsed === 'all') {\n if (accordion.preventAccordionBehavior($this)) {\n return;\n }\n if (\n !accordion.collapseTabsByDefault(this) &&\n index === accordion.openedAccordion &&\n !$this.hasClass('accordion__closed')\n ) {\n $this.addClass('js--open');\n $this.find('.accordion-tabbed__control').attr('aria-expanded', 'true');\n $this.find('.accordion-tabbed__content').show();\n if ($this.find('.accordion-lazy').length) {\n accordion.getAccordionContent($this.find('.accordion-lazy'));\n }\n } else {\n $this.removeClass('js--open');\n $this.find('.accordion-tabbed__control').attr('aria-expanded', 'false');\n $this.find('.accordion-tabbed__content').hide();\n }\n } else {\n $this.addClass('js--open');\n $this.find('.accordion-tabbed__control').attr('aria-expanded', 'true');\n $this.find('.accordion-tabbed__content').show();\n }\n });\n });\n },\n collapseTabsByDefault: function () {\n return accordion.collapseTabs;\n },\n additionalAjaxSuccess: function ($elem) {},\n getCustomAjaxUrl: function ($elem) {},\n buildAjaxUrl: function ($elem) {\n let ajaxUrl;\n var hasCustomUrl =\n typeof $elem.attr('data-custom-url') !== 'undefined' && $elem.attr('data-custom-url') === 'true';\n if (hasCustomUrl) {\n ajaxUrl = accordion.getCustomAjaxUrl($elem);\n } else {\n const widgetId = $elem.attr('data-widgetid');\n const dropzoneId = $elem.attr('data-dropzoneid');\n const pbContext = encodeURIComponent($('meta[name=pbContext]').attr('content'));\n ajaxUrl =\n '/pb/widgets/accordion/loadTab?pbContext=' +\n pbContext +\n '&widgetId=' +\n widgetId +\n '&dropZoneId=' +\n dropzoneId;\n }\n return ajaxUrl;\n },\n getAccordionContent: function ($elem) {\n var ajaxUrl = accordion.buildAjaxUrl($elem);\n var $parentTab = $elem.parent();\n $.ajax({\n url: ajaxUrl,\n success: function (data) {\n $elem.closest('.accordion-tabbed__tab').attr('data-ajaxLoaded', 'true');\n $elem.replaceWith(data);\n if ($parentTab.find('.accordion-tabbed').length) {\n accordion.logic($parentTab.find('.accordion-tabbed'));\n }\n $parentTab.find('.accordion__spinner').remove();\n accordion.additionalAjaxSuccess($parentTab);\n },\n error: function () {},\n });\n },\n on: {\n toggle: {\n single: function ($this) {\n let state;\n var $accordionContent = $this.next('.accordion__content');\n if (typeof $this.attr('data-content-target') !== 'undefined') {\n const contentTarget = $this.attr('data-content-target');\n $accordionContent = $(contentTarget);\n }\n $accordionContent.slideToggle(200, function () {\n if ($this.parent().hasClass('article-accordion')) {\n $('.article-row-left').height('auto');\n accordion.isStickyBody = state;\n }\n });\n $this.toggleClass('js--open');\n\n const $wrapper = $this.closest('.expandable-accordion');\n\n state = !($this.attr('aria-expanded') === 'true');\n $this.attr('aria-expanded', state);\n const accordionExpandedSingle = $.Event('accordion:expandedSingle');\n $(document).trigger(accordionExpandedSingle, [$this, $accordionContent]);\n if ($wrapper.length) accordion.on.checkExpandAll($this, state, $wrapper);\n },\n tabbed: function ($this) {\n const $parent = $this.closest('.accordion-tabbed__tab');\n const $opened = $this.closest('.accordion-tabbed').children('.js--open');\n\n const state = !($this.attr('aria-expanded') === 'true');\n $this.attr('aria-expanded', state);\n const $wrapper = $this.closest('.expandable-accordion');\n if ($wrapper.length) accordion.on.checkExpandAll($this, state, $wrapper);\n if (!$parent.hasClass('js--open')) {\n if (accordion.collapseAccordion || accordion.extraCollapseAccordionCheck($parent)) {\n $opened.children('.accordion-tabbed__content').slideUp(200);\n }\n $parent.children('.accordion-tabbed__content').slideDown(200, function () {\n if (accordion.collapseAccordion || accordion.extraCollapseAccordionCheck($parent)) {\n $opened.removeClass('js--open');\n }\n\n $parent.addClass('js--open');\n if ($parent.attr('data-ajaxLoaded') !== 'true' && $parent.find('.accordion-lazy').length) {\n accordion.getAccordionContent($parent.find('.accordion-lazy'));\n }\n accordion.on.expanded($this);\n const accordionExpandedTabbed = $.Event('accordion:expandedTabbed');\n $(document).trigger(accordionExpandedTabbed, [$this]);\n });\n } else {\n $parent.children('.accordion-tabbed__content').slideUp(200, function () {\n $this.removeClass('js--open');\n $parent.removeClass('js--open');\n // @fixme: work with aria-expanded is missing here, so it doesn't work correct\n });\n }\n },\n all: function ($this) {\n var $wrapper = $this.closest('.expandable-accordion');\n var state = !($this.attr('aria-expanded') === 'true');\n\n $this.attr('aria-expanded', state);\n if (state) {\n $wrapper.find('.accordion-tabbed__tab').addClass('js--open');\n $wrapper\n .find('.accordion__control, .accordion-tabbed__control')\n .addClass('js--open')\n .attr('aria-expanded', state);\n $wrapper.find('.accordion__content, .accordion-tabbed__content').slideDown(200);\n\n $this.text('Hide All');\n\n const $lazy = $wrapper.find('[data-ajaxLoaded]');\n $lazy.each(function () {\n if ($lazy.attr('[data-ajaxLoaded]') !== 'true' && $lazy.find('.accordion-lazy').length) {\n accordion.getAccordionContent($lazy.find('.accordion-lazy'));\n }\n });\n } else {\n $wrapper.find('.accordion-tabbed__tab').removeClass('js--open');\n $wrapper\n .find('.accordion__control, .accordion-tabbed__control')\n .removeClass('js--open')\n .attr('aria-expanded', state);\n $wrapper.find('.accordion__content, .accordion-tabbed__content').slideUp(200);\n\n $this.text('Expand All');\n }\n },\n },\n expanded: function ($this) {},\n checkExpandAll: function ($this, state, $wrapper) {\n let $expandElem;\n if ($wrapper.length) {\n $expandElem = $wrapper.find('.expand-all');\n }\n\n if ($expandElem.length && $expandElem.attr('aria-expanded') === 'true') {\n $expandElem.attr('aria-expanded', state);\n if (state) $expandElem.text('Hide All');\n else $expandElem.text('Expand All');\n }\n },\n },\n hideAll: function () {\n //Hide accordion content on load (in case of disabled JS, the accordion should be open)\n accordion.$elements.each(function () {\n var $this = $(this);\n $this.find('.accordion__control').attr('aria-expanded', 'false');\n if (!$this.find('.accordion__content').hasClass('js--open')) {\n $this.find('.accordion__content').hide();\n } else if ($this.find('.accordion__content').hasClass('js--open')) {\n $this.find('.accordion__control').attr('aria-expanded', 'true');\n } else {\n $this.find('.accordion__content').removeClass('js--open');\n }\n });\n },\n initResponsive: function () {\n if (accordion.$responsiveElements.length) {\n accordion.$responsiveElements.each(function (index) {\n accordion.$responsiveTarget[index] = $(this);\n accordion.accVport[index] = $(this).data('accordion-vport');\n accordion.setViewports(index);\n });\n }\n },\n extraCollapseAccordionCheck: function ($parent) {\n return accordion.collapseAccordion;\n },\n setViewports: function (index) {\n $(document).on(accordion.accVport[index] + '-on', function () {\n var target = accordion.$responsiveTarget[index];\n if (target.data('accordion-vport') === accordion.accVport[index]) {\n target.addClass('accordion-vport--res');\n if (target.data('accordion-option') === 'with-arrow') {\n target.addClass('accordion-with-arrow');\n }\n accordion.logic(accordion.$responsiveTarget[index].find('.accordion-tabbed'));\n }\n });\n\n $(document).on(accordion.accVport[index] + '-off', function () {\n // Waiting for custom event that will be triggered by controller.js to activate responsive effects\n var target = accordion.$responsiveTarget[index];\n if (target.data('accordion-vport') === accordion.accVport[index]) {\n target.removeClass('accordion-vport--res accordion-with-arrow');\n target.find('.accordion-tabbed__content').show();\n }\n });\n },\n };\n if (config.enableAccordionTypeSubsection || config.enableAccordionTypeSingle) {\n accordion.on.toggle.single = function ($this) {\n let state;\n var $accordionContent = $this.next('.accordion__content');\n if (typeof $this.attr('data-content-target') !== 'undefined') {\n const contentTarget = $this.attr('data-content-target');\n $accordionContent = $(contentTarget);\n }\n $accordionContent.slideToggle(200, function () {\n if ($this.parent().hasClass('article-accordion')) {\n $('.article-row-left').height('auto');\n accordion.isStickyBody = state;\n }\n });\n $this.toggleClass('js--open');\n\n const $wrapper = $this.closest('.expandable-accordion');\n\n state = !($this.attr('aria-expanded') === 'true');\n $this.attr('aria-expanded', state);\n const accordionExpandedSingle = $.Event('accordion:expandedSingle');\n $(document).trigger(accordionExpandedSingle, [$this, $accordionContent]);\n if ($wrapper.length) accordion.on.checkExpandAll($this, state, $wrapper);\n };\n }\n if (config.enableAccordionExpandAll) {\n accordion.on.toggle.all = function ($this) {\n var $wrapper = $this.closest('.expandable-accordion');\n var state = !($this.attr('aria-expanded') === 'true');\n\n $this.attr('aria-expanded', state);\n if (state) {\n $wrapper.find('.accordion-tabbed__tab').addClass('js--open');\n $wrapper\n .find('.accordion__control, .accordion-tabbed__control')\n .addClass('js--open')\n .attr('aria-expanded', state);\n $wrapper.find('.accordion__content, .accordion-tabbed__content').slideDown(200);\n\n $this.text('Hide All');\n\n const $lazy = $wrapper.find('[data-ajaxLoaded]');\n $lazy.each(function () {\n if ($lazy.attr('[data-ajaxLoaded]') !== 'true' && $lazy.find('.accordion-lazy').length) {\n accordion.getAccordionContent($lazy.find('.accordion-lazy'));\n }\n });\n } else {\n $wrapper.find('.accordion-tabbed__tab').removeClass('js--open');\n $wrapper\n .find('.accordion__control, .accordion-tabbed__control')\n .removeClass('js--open')\n .attr('aria-expanded', state);\n $wrapper.find('.accordion__content, .accordion-tabbed__content').slideUp(200);\n\n $this.text('Expand All');\n }\n };\n }\n if (config.enableAccordionBehaviorOnlyOnSpecificViewPort) {\n accordion.preventAccordionBehavior = function ($this) {\n return !!$this.parents('[data-accordion-vport]:not(.accordion-vport--res)').length;\n };\n }\n if (!config.enableAccordionBehaviorOnlyOnSpecificViewPort) {\n accordion.preventAccordionBehavior = () => true;\n }\n UX.accordion = accordion; // add to global namespace\n})();\n","(function () {\n var transplant = {\n $element: null,\n $target: null,\n $order: null,\n $cloneData: null,\n $clonedContainer: null,\n vPort: 'screen-sm',\n\n init: function () {\n var transArray = $('[data-toggle=\"transplant\"]');\n\n transArray.each(function (index) {\n var $this = $(this);\n\n transplant.$element = $this.data('transplant');\n transplant.$target = $($this.data('target'));\n transplant.$direction = $($this.data('direction'));\n transplant.$order = $this.data('transplant-order');\n\n transplant.$remove = $this.data('remove');\n transplant.$targetClass = $this.data('target-class');\n transplant.$classNames = $this.data('class-names');\n\n if (transplant.$direction === 'to' || typeof transplant.$direction === 'undefined') {\n if (transplant.$element === 'self') {\n transplant.$element = $this;\n } else {\n transplant.$element = $this.find(transplant.$element);\n }\n transplant.$cloneData = transplant.$element\n .clone(true, true)\n .removeAttr('data-toggle')\n .attr('data-transplant-order', transplant.$order);\n\n transplant.clone();\n if (transplant.$targetClass) {\n transplant.$target.find('.transplanted-clone').addClass(transplant.$targetClass);\n transplant.$target.find('[data-pb-widget]')?.removeAttr('data-pb-widget');\n }\n if (transplant.$classNames) {\n transplant.$element.addClass(transplant.$classNames);\n }\n if (transplant.$remove === true) {\n transplant.remove();\n }\n } else {\n transplant.$target = $this;\n\n const array = $this.data('target').split(',');\n $.each(array, function (index, item) {\n // go through selectors\n transplant.$element = $(item);\n transplant.$cloneData = transplant.$element\n .clone(true, true)\n .attr('data-transplant-order', transplant.$order);\n transplant.clone();\n\n if (transplant.$targetClass) {\n transplant.$element.addClass(transplant.$targetClass);\n }\n\n if (transplant.$classNames) {\n transplant.$target.find('.transplanted-clone').addClass(transplant.$classNames);\n }\n if (transplant.$remove === true) {\n transplant.remove();\n }\n });\n }\n });\n transplant.order();\n },\n\n clone: function () {\n if (transplant.$element.hasClass('cloned')) return;\n\n if (transplant.$target.find('.transplanted-clone').length <= 0) {\n if (transplant.$target.is('ul')) {\n transplant.$target.append('
  • ');\n } else {\n transplant.$target.append('
    ');\n }\n\n transplant.$clonedContainer = transplant.$target.find('.transplanted-clone');\n if (transplant.$cloneData.is('li')) {\n transplant.$clonedContainer.append('
      ');\n transplant.$clonedContainer = transplant.$target\n .find('.transplanted-clone__ul')\n .addClass(transplant.$classNames);\n }\n }\n\n transplant.$clonedContainer.append(transplant.$cloneData);\n transplant.$element.addClass('cloned');\n\n transplant.cleanDuplicateID();\n },\n order: function () {\n var clonedItems = transplant.$clonedContainer.children();\n\n clonedItems.sort(function (a, b) {\n return $(a).data('transplant-order') - $(b).data('transplant-order');\n });\n\n transplant.$clonedContainer.html(clonedItems);\n },\n remove: function () {\n if (transplant.$target) {\n transplant.$element.remove();\n } else {\n transplant.$source.remove();\n }\n },\n cleanDuplicateID: function () {\n var id,\n targetFor,\n $controler,\n isMobile = false,\n clonedElement = transplant.$target;\n\n if (!clonedElement || clonedElement.length <= 0 || clonedElement.hasClass('cloned-with-ids')) return;\n\n id = clonedElement.attr('id');\n if (id) {\n clonedElement.attr('id', id + '-cloned');\n }\n clonedElement.find('[id]:not(.cloned-with-ids), [aria-owns]').each(function () {\n var $this = $(this);\n $this.addClass('cloned-with-ids');\n var id = $this.attr('id'),\n ariaOwns = $this.attr('aria-owns');\n\n if (id) {\n $this.attr('id', id + '-cloned');\n }\n if (ariaOwns) {\n $this.attr(\n 'aria-owns',\n $this\n .attr('aria-owns')\n .split(' ')\n .map(id => id + '-cloned')\n .join(' ')\n );\n }\n });\n targetFor = clonedElement.attr('data-db-target-of');\n\n if (targetFor) {\n $controler = $('[data-db-target-for=' + targetFor + ']');\n if (!isMobile) {\n $controler.attr({'aria-controls': targetFor + '-cloned'});\n }\n $(document).on(transplant.vPort + '-on', function () {\n // Waiting for custom event that will be triggered by controller.js to activate responsive effects\n isMobile = true;\n $controler.attr({'aria-controls': targetFor});\n });\n $(document).on(transplant.vPort + '-off', function () {\n // Waiting for custom event that will be triggered by controller.js to deactivate responsive effects\n isMobile = false;\n $controler.attr({'aria-controls': targetFor + '-cloned'});\n });\n }\n },\n };\n UX.transplant = transplant; // add to global namespace\n})();\n","// tabs.js calls UX.dropBlock.init(); on line 260\n// profile-menu.js calls UX.dropBlock.init(); on line 53\n\n(function () {\n var $window = $(window),\n $body = $('body');\n\n var dropBlock = {\n $controllers: $('[data-db-target-for]'),\n $targets: null, // Holds all targets in Dom\n $controller: null, // Current drop down controller\n $target: null, // Current target down controller element\n $parents: null, // Hodls all parents in Dom\n $parent: null, // Current parent element\n escape: 27,\n $container: $('.container'),\n switchVal: null,\n $section: $('.dropBlock__holder'),\n vPort: 'screen-sm',\n isMobile: false,\n initialized: false,\n direction: 'left', // left , right\n pop: 'down', // up , down\n\n init: function () {\n dropBlock.control();\n },\n\n control: function () {\n if (dropBlock.initialized) {\n return;\n }\n dropBlock.initialized = true;\n\n $(document).on('click', '[data-db-target-for]', function (e) {\n e.preventDefault();\n e.stopPropagation();\n\n const isOpen = $(this).hasClass('js--open'),\n isDataSlideTarget = $(this).is('[data-slide-target]'),\n disableOnMobile = $(this).data('db-sm-disable') || false;\n\n dropBlock.$controller = $(this);\n dropBlock.find.target();\n\n if (isOpen) {\n dropBlock.on.hide();\n } else {\n if (dropBlock.isMobile && (isDataSlideTarget !== false || disableOnMobile)) {\n return;\n } else {\n dropBlock.on.show(e);\n }\n }\n });\n\n $(document).on(\n 'click',\n '.coolBar:not(.loi__banner) [data-db-target-of] a:not([data-slide-target])',\n function (e) {\n dropBlock.on.hide();\n }\n );\n\n $window.on('resize', function () {\n if (dropBlock.$parent != null) {\n dropBlock.find.dimensions();\n }\n });\n\n $(document).on(dropBlock.vPort + '-on', function () {\n // Waiting for custom event that will be triggered by controller.js to activate responsive effects\n dropBlock.isMobile = true;\n });\n $(document).on(dropBlock.vPort + '-off', function () {\n // Waiting for custom event that will be triggered by controller.js to deactivate responsive effects\n dropBlock.isMobile = false;\n });\n },\n on: {\n show: function (e) {\n // show target element\n\n if (!dropBlock.$controller.closest('.dropBlock__holder').length) {\n if (typeof UX.controller != 'undefined') {\n UX.controller.check(e);\n }\n }\n\n if (dropBlock.$target) {\n dropBlock.$controller.trigger('dropBlock:open', [dropBlock]);\n\n dropBlock.$target.addClass('js--open');\n dropBlock.$controller.addClass('js--open');\n $body.attr('data-active', 'dropBlock');\n dropBlock.$target.closest(\"[class*='sticko']\").addClass('js--open');\n dropBlock.switch.icon();\n // Move focus to active inner component, or leave focus on control\n dropBlock.$target.find('.active :tabbable').first().focus();\n\n // Accessibility\n dropBlock.$controller.attr({'aria-expanded': 'true'});\n dropBlock.$target.removeAttr('aria-hidden');\n\n // @fixme - this should not be here at all - it should be moved to proper component\n const isLoi = dropBlock.$target.find('.loi').length > 0;\n if (isLoi) {\n dropBlock.$target.find('.loi__list').each(function () {\n UX.loi.on.recalculate($(this));\n });\n }\n dropBlock.$controller.trigger('dropBlock:opened', [dropBlock]);\n }\n dropBlock.additionalOnShow();\n },\n hide: function () {\n // hide target element\n if (dropBlock.$target) {\n dropBlock.$controller.trigger('dropBlock:close', [dropBlock]);\n\n // Close current target\n dropBlock.$controller.removeClass('js--open');\n dropBlock.$target.removeClass('js--open');\n // Play nicely with others ...\n // For plugins which don't use js--open class but uses .hide .show methods instead, reset them ...\n // For example LOA accordion\n if (dropBlock.$target.attr('style')) {\n dropBlock.$target.removeAttr('style');\n }\n // Explicitly for our accordion working as a drop-block\n dropBlock.$target.closest(\"[class*='accordion-tabbed__tab']\").removeClass('js--open');\n\n dropBlock.$target.closest(\"[class*='sticko']\").removeClass('js--open');\n\n dropBlock.switch.back();\n\n // Accessibility - Inform screen readers\n dropBlock.$controller.attr({'aria-expanded': 'false'});\n dropBlock.$target.attr({'aria-hidden': 'true'});\n\n // Nested dropBlocks close handling\n if (dropBlock.$parentSection && dropBlock.$parentSection.length) {\n // Nested ones - set parent after closing self - will close parent in second round\n dropBlock.$controller = $(\n '[data-db-target-for=\"' + dropBlock.$parentSection.attr('data-db-target-of') + '\"]'\n );\n dropBlock.find.target();\n } else {\n // If we want to close last drop block, than there is no more active component\n if ($body.attr('data-active') === 'dropBlock') {\n $body.removeAttr('data-active');\n $('body, html').removeClass('lock-screen'); // @todo investigate if this is needed for drop Blocks or was copied out of other component\n }\n }\n if (dropBlock.$target) {\n dropBlock.$target.find('input:focus').blur();\n }\n dropBlock.$controller.trigger('dropBlock:closed', [dropBlock]);\n }\n dropBlock.additionalOnHide();\n },\n escape: function () {\n // hide target if user clicks escape key\n // @fixme this seems unused and deprecated by controller.js\n if (dropBlock.$target != null) {\n dropBlock.on.hide();\n }\n },\n },\n find: {\n target: function () {\n // get the target element if existed\n if ($('[data-db-target-of]').length) {\n dropBlock.$targets = $('[data-db-target-of]');\n dropBlock.$target = $(\n '[data-db-target-of=' + dropBlock.$controller.attr('data-db-target-for') + ']'\n );\n dropBlock.$section = dropBlock.$target;\n const $nested = dropBlock.$section.parents('.dropBlock__holder');\n if ($nested.length) {\n dropBlock.$parentSection = $nested;\n } else {\n dropBlock.$parentSection = null;\n }\n dropBlock.find.parent();\n }\n },\n parent: function () {\n // get the parent element if existed\n\n dropBlock.$parent = null;\n dropBlock.$parents = $('[data-db-parent-of]');\n\n if (dropBlock.$parents.length) {\n dropBlock.$parents.each(function () {\n const current = dropBlock.$controller.attr('data-db-target-for');\n let parentFor = $(this).data('db-parent-of').split(',');\n\n if (parentFor.indexOf(current) !== -1) {\n dropBlock.$parent = $(this);\n return false;\n }\n });\n\n if (dropBlock.$parent != null) {\n dropBlock.find.dimensions();\n dropBlock.find.ifContaind();\n }\n }\n },\n ifContaind: function () {\n // check if it parent or target has container element\n if (dropBlock.$parent.find('.container').length && !dropBlock.$target.find('.container').length) {\n dropBlock.$target.wrapInner(\"
      \");\n }\n },\n dimensions: function () {\n // count the top and left position of the target element based on teh parent element\n\n var nHeight = dropBlock.$parent.outerHeight(),\n pOffset = dropBlock.$parent.offset(),\n pLeft = pOffset.left,\n nWidth = dropBlock.$parent.innerWidth(),\n styles = {},\n container_offset = pOffset;\n\n dropBlock.$container = $('.container');\n if (dropBlock.$container.length) {\n container_offset = dropBlock.$container.offset();\n }\n\n const container_left = container_offset.left,\n container_base = container_left + dropBlock.$container.width(),\n parent_base = nWidth + pLeft;\n\n if (dropBlock.$parent.find('.scrollThenFix').length) {\n nHeight = dropBlock.$parent.find('.scrollThenFix').outerHeight();\n }\n\n if (dropBlock.$parent.innerWidth() === dropBlock.$controller.innerWidth()) {\n nWidth = dropBlock.$parent.hasClass('no-auto-width') ? '' : 'auto';\n if (dropBlock.isMobile) {\n nWidth = dropBlock.$parent.hasClass('no-auto-width') ? '' : '100%';\n }\n }\n\n if (parent_base > container_base) {\n styles = {\n top: nHeight,\n right: '0px',\n width: nWidth,\n };\n } else {\n styles = {\n top: nHeight,\n width: nWidth,\n };\n let direction = dropBlock.$parent.data('db-direction') || dropBlock.direction;\n /*eslint-disable*/\n switch (direction) {\n case 'left':\n case 'right':\n styles[direction] = '0px';\n break;\n case 'center':\n let offset = dropBlock.$target.innerWidth() / 2 - dropBlock.$parent.innerWidth();\n styles['left'] = `calc(-50% - ${offset}px)`;\n }\n /*eslint-enable*/\n }\n dropBlock.$target.css(styles);\n },\n },\n switch: {\n icon: function () {\n dropBlock.switchVal = dropBlock.$controller.attr('data-db-switch');\n switch (dropBlock.switchVal) {\n case 'none':\n break;\n case 'rotate':\n dropBlock.$controller.find('i').addClass('js--rotated');\n break;\n default:\n dropBlock.$controller.find('i').addClass(dropBlock.switchVal);\n }\n },\n back: function () {\n dropBlock.$controllers.each(function () {\n var temp = $(this).attr('data-db-switch');\n switch (temp) {\n case 'none':\n break;\n case 'rotate':\n dropBlock.$controller.find('i').removeClass('js--rotated');\n break;\n default:\n if (temp !== undefined) dropBlock.$controller.find('i').removeClass(temp);\n }\n });\n },\n },\n\n additionalOnShow: function () {},\n\n additionalOnHide: function () {},\n };\n\n UX.dropBlock = dropBlock; // add to global namespace\n})();\n","(function () {\n var $window = $(window),\n $body = $('body');\n\n var backToTop = {\n element: '.back-to-top',\n footerBackToTop: 'footer .back-to-top',\n\n init: function () {\n backToTop.controller();\n },\n controller: function () {\n $body.on('click', backToTop.element, function (e) {\n e.preventDefault();\n $('html, body').animate({scrollTop: 0}, 600);\n $(document.body).find(':focusable').first().focus();\n });\n\n $window.on('scroll', function () {\n if ($(backToTop.footerBackToTop).length) {\n if ($(this).scrollTop() > $('header').height()) {\n $(backToTop.footerBackToTop).addClass('back-to-top__is-visible');\n } else {\n $(backToTop.footerBackToTop).removeClass('back-to-top__is-visible back-to-top__fade-out');\n }\n\n if ($(this).scrollTop() > 400) {\n $(backToTop.footerBackToTop).addClass('back-to-top__fade-out');\n }\n\n if (backToTop.check.isfooterVisible()) {\n $(backToTop.footerBackToTop).addClass('back-to-top__static');\n } else {\n $(backToTop.footerBackToTop).removeClass('back-to-top__static');\n }\n }\n });\n },\n check: {\n isfooterVisible: function () {\n var docViewBottom = $(window).scrollTop() + $(window).height();\n var backToTopPos = $('footer').offset().top;\n return backToTopPos <= docViewBottom;\n },\n },\n };\n\n UX.backToTop = backToTop;\n})();\n","import { ComponentSelector, ComponentInjector } from '@atypon/ui-utils';\nimport CoreQuickSearch, { QuickSearchClassList, QuickSearchElements, QuickSearchSelectors, QuickSearchTexts, QuickSearchElm } from 'ui-core/widgets/quick-search/js/quick-search';\n\nclass ClassList extends QuickSearchClassList {\n}\n\nclass Selectors extends QuickSearchSelectors {\n journalSearchHideAutocompleteWrapper = '.journal-search__wrapper';\n}\n\nclass Elements extends QuickSearchElements {\n citationSubmit: HTMLElement;\n}\n\ninterface QuickSearch {\n get elements(): Elements;\n get classList(): ClassList;\n get selectors(): Selectors;\n}\n\n@ComponentInjector(Selectors, Elements, ClassList, QuickSearchTexts)\nclass QuickSearch extends CoreQuickSearch {\n\n protected resultListConfig(quickSearchElm: QuickSearchElm) {\n return { ...super.resultListConfig(quickSearchElm), position: 'afterbegin' };\n }\n}\n\n\nexport default QuickSearch;\n\nexport {\n Elements as ClassicQuickSearchElements,\n Selectors as ClassicQuickSearchSelectors,\n ClassList as ClassicQuickSearchClassList,\n}","(function () {\n const adplaceholder = {\n init: function () {\n $('.js__toggleAdForm').on('click', function (e) {\n e.preventDefault();\n const elemToToggle = '#' + $(this).data('toggle');\n $(elemToToggle).slideToggle();\n });\n },\n };\n UX.adplaceholder = adplaceholder; // add to global namespace\n})();\n","(function () {\n var $body = $('body'),\n $multi_search;\n\n // get the 'data-widget-id' attribute from the current generated widget\n function getWidgetId(elem) {\n var widgetEl = elem.parents('[data-widget-id]')[0];\n var widgetId = widgetEl ? $(widgetEl).data('widget-id') : '';\n\n return widgetId;\n }\n\n // get The content attribute from the meta tag in the head\n function getPbContext() {\n var pbContext = $('[name=\"pbContext\"]').attr('content');\n return pbContext ? pbContext : '';\n }\n\n const multiSearch = {\n init: function () {\n multiSearch.control();\n },\n control: function () {\n $body.on('click', '.multi-search__dropblock__holder a', function () {\n var el = $(this);\n\n multiSearch.set.parent(el);\n multiSearch.on.select.dropdown(el);\n });\n\n $body.on('click', 'a.remove-topic', function () {\n var el = $(this);\n var widgetID = getWidgetId(el);\n\n multiSearch.set.parent(el);\n multiSearch.topic.remove(widgetID);\n });\n },\n on: {\n select: {\n dropdown: function (elem) {\n var tagLabel = elem.data('label');\n var tagId = elem.data('value');\n var widgetID = getWidgetId(elem);\n\n multiSearch.topic.add(tagLabel, tagId, widgetID);\n },\n },\n },\n topic: {\n add: function (label, id, widgetID) {\n var params = {\n multiSearchAction: 'applyTopic',\n tagId: id,\n tagLabel: label,\n widgetId: widgetID,\n };\n\n multiSearch.ajax(params);\n },\n remove: function (widgetID) {\n var params = {\n multiSearchAction: 'removeTopic',\n widgetId: widgetID,\n };\n\n multiSearch.ajax(params);\n },\n lazyload: function () {\n function lazyLoad() {\n $('.lazy-load').remove();\n $('.delayLoad').removeClass('delayLoad').addClass('delayedLoad');\n }\n\n $('.creative-work .loa').not(\"[data-truncate='none']\").truncate({\n lines: 2,\n type: 'list',\n addClass: 'loa-height',\n });\n\n $('.card .creative-work .loa').not(\"[data-truncate='none']\").truncate({\n lines: 1,\n type: 'list',\n addClass: 'loa-height',\n });\n\n setTimeout(lazyLoad, 10);\n },\n },\n set: {\n parent: function (elem) {\n $multi_search = $(elem.parents('.multi-search')[0]);\n },\n },\n ajax: function (params) {\n params['pbContext'] = getPbContext();\n\n $.ajax({\n type: 'GET',\n url: '/pb/widgets/multiSearch/updateTopic',\n dataType: 'html',\n data: params,\n async: true,\n success: function (html) {\n multiSearch.render(html);\n multiSearch.topic.lazyload();\n },\n error: function (error) {\n console.log(error);\n },\n });\n },\n render: function (html) {\n $multi_search.html('');\n $multi_search.replaceWith(html);\n },\n };\n\n UX.multiSearch = multiSearch;\n})();\n","$(document).ready(function () {\n // display user login popup - loginBar\n $(document).on('click', '#indivLogin, #guestLogin', function (event) {\n event.preventDefault();\n event.stopPropagation();\n $(this).toggleClass('active');\n $('.navigation-login-dropdown-container:not(.login-options)').toggleClass('hidden');\n if ($('.search-open').is(':visible')) {\n toggleQuickSearch(); /*eslint-disable-line*/\n }\n });\n\n $(document).on('click', function (e) {\n if (\n $(e.target).attr('id') !== 'indivLogin' &&\n $(e.target).attr('id') !== 'guestLogin' &&\n !$('.navigation-login-dropdown-container').hasClass('hidden')\n ) {\n $('.navigation-login-dropdown-container').addClass('hidden');\n }\n });\n\n // enable sumbit btn for access token widget\n $('#accessTokenForm div.input-group input[type=text]').on('keyup input change', function () {\n !$('#accessTokenForm div.input-group #tokenAccess').val().length\n ? $('#accessTokenForm input[type=submit]').attr('disabled', 'disabled')\n : $('#accessTokenForm input[type=submit]').removeAttr('disabled');\n });\n\n // enable sumbit btn for access token widget\n $('.registration-popup input[type=submit]').attr('disabled', 'disabled');\n\n $('.registration-popup input[type=text]').on('keyup input change', function () {\n !$(this).val().length\n ? $('.registration-form input[type=submit]').attr('disabled', 'disabled')\n : $('.registration-form input[type=submit]').removeAttr('disabled');\n });\n\n // display verification code hidden msg after 3m\n if ($('#check-if-exist')) {\n setTimeout(function () {\n $('#hidden-message').css('visibility', 'visible');\n }, 30000);\n }\n\n // enable sumbit btn for 2-step widget\n $('#check-if-exist input[type=input]').on('keyup input change', function () {\n !$('#check-if-exist input[type=input]').val().length\n ? $('#check-if-exist input[type=submit]').attr('disabled', 'disabled')\n : $('#check-if-exist input[type=submit]').removeAttr('disabled');\n });\n});\n\n// this is not required anymore\n// $(window).on('load', function () {\n// // recaptcha load\n// if ($('.g-recaptcha').length) {\n// loadRecaptcha(); /*eslint-disable-line*/\n// }\n// });\n\nfunction loadInstitutionPage(selectDom) {\n var href = $(selectDom).val();\n location.href = href;\n}\nwindow.loadInstitutionPage = loadInstitutionPage; // add to global namespace\n","(function ($) {\n let methods;\n function seeMoreLink() {\n let seeMore =\n ' ' +\n this.settings.ellipsisChar +\n ' ' +\n this.settings.seeMoreText +\n this.settings.seeMoreTextHidden +\n ' ',\n link;\n\n if (this.settings.seeMoreHtml) {\n seeMore = this.settings.seeMoreHtml;\n } else if (this.settings.isMobile) {\n seeMore =\n ' ' +\n this.settings.ellipsisChar +\n ' ' +\n this.settings.seeMoreText +\n this.settings.seeMoreTextHidden +\n ' ';\n }\n\n if (this.settings.isMobile && this.isSliding) {\n link =\n '' +\n seeMore +\n '';\n } else {\n link = '' + seeMore + '';\n }\n\n if (this.parentTagName === 'UL') {\n link = '
    • ' + link + '
    • ';\n }\n\n return $(link);\n }\n\n function ellipsis(isLink) {\n let link =\n '<' +\n (isLink ? 'a href=\"#\"' : 'span') +\n ' class=\"ellipsis\"> ' +\n this.settings.ellipsisChar +\n ' ';\n if (this.parentTagName === 'UL') {\n link = '
    • ' + link + '
    • ';\n }\n return $(link);\n }\n\n function removeElements(containerEl) {\n const that = this;\n const $this = $(this);\n let height = $this.height();\n const maxHeight = this.settings.lines * Math.ceil(parseFloat($this.css('line-height')));\n let $lastRemoved;\n let $parent;\n\n let $seeMore;\n\n if (this.settings.seeMoreLink) {\n $seeMore = seeMoreLink.call(this);\n } else {\n $seeMore = ellipsis.call(this);\n }\n\n if (containerEl.get(0).nodeType === Node.ELEMENT_NODE) {\n while (height > maxHeight && containerEl.contents().length) {\n $lastRemoved = containerEl.contents().last().remove();\n height = $this.height();\n }\n\n if (height <= maxHeight && $lastRemoved) {\n if ($.trim($lastRemoved.text()) !== '') {\n containerEl.append($lastRemoved);\n height = $this.height();\n if (height > maxHeight) {\n removeElements.call(this, $lastRemoved);\n }\n } else {\n $this.append($seeMore);\n if (this.settings.addClass && !$this.hasClass(this.settings.addClass)) {\n setTimeout(function () {\n $this.addClass(that.settings.addClass);\n }, 0);\n }\n $this.data('truncationDone', true);\n that.settings.onComplete();\n }\n } else if ($.trim(containerEl.text()) === '') {\n $parent = containerEl.parent();\n containerEl.remove();\n height = $this.height();\n if ($.trim($parent.text()) === '') {\n removeElements.call(this, $parent);\n } else if (height <= maxHeight) {\n if ($this.children().length) {\n const $lastChild = $this.children().last();\n if ($lastChild.is('br')) {\n $lastChild.after($seeMore);\n } else {\n $lastChild.parent().append($seeMore);\n }\n } else {\n $this.append($seeMore);\n }\n if (this.settings.addClass && !$this.hasClass(this.settings.addClass)) {\n setTimeout(function () {\n $this.addClass(that.settings.addClass);\n }, 0);\n }\n $this.data('truncationDone', true);\n that.settings.onComplete();\n }\n }\n } else {\n const textContent = containerEl.text();\n let min = 0;\n let max = textContent.length - 1;\n let mid = Math.floor((min + max) / 2);\n $parent = containerEl.parent();\n\n while (min < max) {\n if (height > maxHeight) {\n //max = mid - 1;\n max = mid + parseInt(((max - mid) * maxHeight) / height, 10);\n } else {\n min = mid + 1;\n }\n $seeMore.remove();\n mid = Math.floor((min + max) / 2);\n containerEl.get(0).textContent = textContent.substr(\n 0,\n this.settings.midWordEnabled ? mid : Math.min(mid, textContent.lastIndexOf(' ', mid))\n );\n if ($.trim($parent.text()) === '') {\n removeElements.call(this, $parent);\n return;\n }\n containerEl.parent().append($seeMore);\n height = $this.height();\n }\n\n while (height > maxHeight && mid > 0) {\n $seeMore.remove();\n mid = mid - 1;\n containerEl.get(0).textContent = textContent.substr(\n 0,\n this.settings.midWordEnabled ? mid : Math.min(mid, textContent.lastIndexOf(' ', mid))\n );\n if ($.trim($parent.text()) === '') {\n removeElements.call(this, $parent);\n return;\n }\n containerEl.parent().append($seeMore);\n height = $this.height();\n }\n if (mid === 0) {\n $seeMore.remove();\n if ($.trim($parent.text()) === '') {\n removeElements.call(this, $parent);\n }\n }\n\n if (height <= maxHeight) {\n if (this.settings.addClass && !$this.hasClass(this.settings.addClass)) {\n setTimeout(function () {\n $this.addClass(that.settings.addClass);\n }, 0);\n }\n $this.data('truncationDone', true);\n that.settings.onComplete();\n }\n }\n }\n\n function truncateText() {\n const that = this;\n const $this = $(this);\n const height = $this.height();\n const maxHeight = this.settings.lines * parseFloat($this.css('line-height'));\n const visible = !$this.closest(':not(:visible)').length;\n\n if (visible && height === 0) {\n setTimeout(function () {\n truncateText.call(that);\n }, 30);\n return;\n }\n\n if (height > maxHeight) {\n removeElements.call(this, $this);\n } else {\n setTimeout(function () {\n $this.addClass(that.settings.addClass);\n }, 0);\n $this.data('truncationDone', true);\n that.settings.onComplete();\n }\n }\n\n function seeMoreMiddleLink() {\n let seeMore =\n ' ' +\n this.settings.ellipsisChar +\n ' ' +\n this.settings.seeMoreText +\n this.settings.seeMoreTextHidden +\n ' ' +\n this.settings.ellipsisChar +\n ' ',\n link;\n\n if (this.settings.seeMoreHtml) {\n seeMore = this.settings.seeMoreHtml;\n } else if (this.settings.isMobile) {\n seeMore =\n ' ' +\n this.settings.ellipsisChar +\n ' ' +\n this.settings.seeMoreText +\n this.settings.seeMoreTextHidden +\n ' ' +\n this.settings.ellipsisChar +\n ' ';\n }\n\n if (this.settings.isMobile) {\n link =\n '' +\n seeMore +\n '';\n } else {\n link = '' + seeMore + '';\n }\n\n if (this.parentTagName === 'UL') {\n link = '
    • ' + link + '
    • ';\n }\n\n return $(link);\n }\n\n function removeListItemsMiddle() {\n const that = this;\n const $this = $(this);\n let height;\n const lineHeight = Math.ceil(Math.max($this.children().height(), parseFloat($this.css('line-height'))));\n const maxHeight = this.settings.lines * lineHeight;\n let $seeMore;\n let removedCount = 0;\n let $removedItems;\n let $lastRemoved;\n const visible = !$this.closest(':not(:visible)').length;\n\n if (this.settings.seeMoreLink) {\n $seeMore = seeMoreMiddleLink.call(this);\n } else {\n $seeMore = ellipsis.call(this, true);\n }\n\n const removeItems = function () {\n height = $this.height();\n if (!visible) return;\n if (height > maxHeight) {\n while (height > maxHeight && $this.contents().length > 2) {\n $seeMore.remove();\n if ($removedItems && $this.find($removedItems).length) {\n $removedItems.remove();\n }\n let indexToRemove = Math.floor($this.contents().length / 2);\n\n $lastRemoved = $($this.contents().get(indexToRemove)).remove();\n if ($lastRemoved && $lastRemoved.get(0).nodeType === Node.ELEMENT_NODE) {\n if (that.settings.ignoreCountList !== null) {\n if (!$lastRemoved.is(that.settings.ignoreCountList)) {\n removedCount += 1;\n }\n } else {\n removedCount += 1;\n }\n }\n indexToRemove -= 1;\n height = $this.height();\n\n if (height > maxHeight && $this.contents().length > 2) {\n $lastRemoved = $($this.contents().get(indexToRemove)).remove();\n if ($lastRemoved && $lastRemoved.get(0).nodeType === Node.ELEMENT_NODE) {\n if (that.settings.ignoreCountList !== null) {\n if (!$lastRemoved.is(that.settings.ignoreCountList)) {\n removedCount += 1;\n }\n } else {\n removedCount += 1;\n }\n }\n indexToRemove -= 1;\n }\n if (that.settings.showRemovedCount && removedCount > 0) {\n $removedItems = $.fn.truncate.removedCountMarkup(removedCount);\n $removedItems.insertAfter($($this.contents().get(indexToRemove)));\n } else {\n $seeMore.insertAfter($($this.contents().get(indexToRemove)));\n }\n\n height = $this.height();\n }\n setTimeout(removeItems, 500);\n } else {\n if (that.settings.addClass && !$this.hasClass(that.settings.addClass)) {\n setTimeout(function () {\n $this.addClass(that.settings.addClass);\n }, 0);\n }\n $this.data('truncationDone', true);\n that.settings.onComplete();\n }\n };\n\n removeItems();\n }\n\n function removeListItemsEnd() {\n var that = this;\n var $this = $(this);\n var height;\n var lineHeight = Math.ceil(Math.max($this.children().height(), parseFloat($this.css('line-height'))));\n var maxHeight = this.settings.lines * lineHeight;\n var $seeMore;\n var removedCount = 0;\n var $removedItems;\n var $lastRemoved;\n var visible = !$this.closest(':not(:visible)').length;\n\n if (this.settings.seeMoreLink) {\n $seeMore = seeMoreLink.call(this);\n } else {\n $seeMore = ellipsis.call(this);\n }\n\n const removeItems = function () {\n height = $this.height();\n if (!visible) return;\n if (height > maxHeight) {\n while (height > maxHeight && $this.contents().length > 1) {\n if ($removedItems && $this.find($removedItems).length) {\n $removedItems.remove();\n }\n if ($this.find($seeMore).length) {\n $lastRemoved = $($this.contents().get($this.contents().length - 2)).remove();\n } else {\n $lastRemoved = $this.contents().last().remove();\n\n if (!that.settings.showRemovedCount) {\n $this.append($seeMore);\n }\n }\n if ($lastRemoved && $lastRemoved.get(0).nodeType === Node.ELEMENT_NODE) {\n if (that.settings.ignoreCountList !== null) {\n if (!$lastRemoved.is(that.settings.ignoreCountList)) {\n removedCount += 1;\n }\n } else {\n removedCount += 1;\n }\n }\n\n if (that.settings.showRemovedCount && removedCount > 0) {\n $removedItems = $.fn.truncate.removedCountMarkup(removedCount);\n $this.append($removedItems);\n }\n\n height = $this.height();\n }\n setTimeout(removeItems, 500);\n } else {\n if (that.settings.addClass && !$this.hasClass(that.settings.addClass)) {\n setTimeout(function () {\n $this.addClass(that.settings.addClass);\n }, 0);\n }\n $this.data('truncationDone', true);\n that.settings.onComplete();\n }\n };\n\n removeItems();\n }\n\n function removeListItemsBetweenFirstAndLast() {\n const that = this,\n $this = $(this),\n $items = $this.children();\n\n let $seeMore,\n removedCount = $items.length - 2,\n $removedItems,\n firstItem,\n latsItem;\n\n if ($items.length > 2) {\n firstItem = $items.eq(0).clone();\n latsItem = $items.eq($items.length - 1).clone();\n if (this.settings.seeMoreLink) {\n $seeMore = seeMoreMiddleLink.call(this);\n } else {\n $seeMore = ellipsis.call(this, true);\n }\n\n if (that.settings.showRemovedCount) {\n $removedItems = $.fn.truncate.removedCountMarkup(removedCount);\n }\n\n $this.html('');\n $this.append(firstItem);\n if (that.settings.showRemovedCount && removedCount > 0) {\n $this.append($removedItems);\n } else {\n $this.append($seeMore);\n }\n $this.append(latsItem);\n }\n if (that.settings.addClass && !$this.hasClass(that.settings.addClass)) {\n setTimeout(function () {\n $this.addClass(that.settings.addClass);\n }, 0);\n }\n $this.data('truncationDone', true);\n that.settings.onComplete();\n }\n\n function removeListItemsBeforeLast() {\n var that = this;\n var $this = $(this);\n var height = $this.height();\n var lineHeight = Math.ceil(Math.max($this.children().height(), parseFloat($this.css('line-height'))));\n var maxHeight = this.settings.lines * lineHeight;\n var $seeMoreLink = seeMoreMiddleLink.call(this);\n var removedCount = 0;\n var $removedItems;\n var $lastRemoved;\n var visible = !$this.closest(':not(:visible)').length;\n\n var removeItems = function () {\n height = $this.height();\n if (!visible) return;\n if (height > maxHeight) {\n const $lastXItems = $('
      ');\n while (\n ($this.children().length > 1 && $lastXItems.children().length < that.settings.lastItemsCount) ||\n $this.contents().last().get(0).nodeType === Node.TEXT_NODE\n ) {\n $lastXItems.prepend($this.contents().last().remove());\n }\n const $lastXItemsContent = $lastXItems.contents();\n while (height > maxHeight && $this.children().length > 2) {\n if ($removedItems && $this.find($removedItems).length) {\n $removedItems.remove();\n }\n $seeMoreLink.remove();\n $lastXItemsContent.remove();\n $lastRemoved = $this.contents().last().remove();\n if ($lastRemoved && $lastRemoved.get(0).nodeType === Node.ELEMENT_NODE) {\n if (that.settings.ignoreCountList !== null) {\n if (!$lastRemoved.is(that.settings.ignoreCountList)) {\n removedCount += 1;\n }\n } else {\n removedCount += 1;\n }\n }\n if (that.settings.showRemovedCount && removedCount > 0) {\n $removedItems = $.fn.truncate.removedCountMarkup(removedCount);\n $this.append($removedItems);\n } else {\n $this.append($seeMoreLink);\n }\n $this.append($lastXItemsContent);\n height = $this.height();\n }\n setTimeout(removeItems, 500);\n } else {\n if (that.settings.addClass && !$this.hasClass(that.settings.addClass)) {\n setTimeout(function () {\n $this.addClass(that.settings.addClass);\n }, 0);\n }\n $this.data('truncationDone', true);\n that.settings.onComplete();\n }\n };\n\n removeItems();\n }\n\n function truncateList() {\n var that = this;\n var $this = $(this);\n var height = $this.height();\n var lineHeight = Math.ceil(Math.max($this.children().height(), parseFloat($this.css('line-height'))));\n var maxHeight = this.settings.lines * lineHeight;\n var visible = !$this.closest(':not(:visible)').length;\n\n if ($this.children().length === 0) {\n $this.addClass(that.settings.addClass);\n $this.data('truncationDone', true);\n that.settings.onComplete();\n return;\n }\n\n if (visible && (height === 0 || maxHeight === 0)) {\n setTimeout(function () {\n truncateList.call(that);\n }, 30);\n return;\n }\n\n switch (this.settings.position) {\n case 'middle':\n if (height > maxHeight) {\n removeListItemsMiddle.call(this, $this);\n } else {\n if (this.settings.addClass && !$this.hasClass(this.settings.addClass)) {\n setTimeout(function () {\n $this.addClass(that.settings.addClass);\n }, 0);\n }\n $this.data('truncationDone', true);\n that.settings.onComplete();\n }\n break;\n case 'end':\n if (height > maxHeight) {\n removeListItemsEnd.call(this, $this);\n } else {\n if (this.settings.addClass && !$this.hasClass(this.settings.addClass)) {\n setTimeout(function () {\n $this.addClass(that.settings.addClass);\n }, 0);\n }\n $this.data('truncationDone', true);\n that.settings.onComplete();\n }\n break;\n case 'betweenFirstAndLast':\n removeListItemsBetweenFirstAndLast.call(this, $this);\n break;\n case 'beforeLast':\n if (height > maxHeight) {\n removeListItemsBeforeLast.call(this, $this);\n } else {\n if (this.settings.addClass && !$this.hasClass(this.settings.addClass)) {\n setTimeout(function () {\n $this.addClass(that.settings.addClass);\n }, 0);\n }\n $this.data('truncationDone', true);\n that.settings.onComplete();\n }\n break;\n }\n }\n\n function seeLessLink() {\n var seeLess =\n (this.settings.lessLinkEllipsis\n ? ' ' + this.settings.ellipsisChar + ' '\n : ' ') +\n this.settings.seeLessText +\n ' ',\n link;\n\n if (this.settings.seeLessHtml) {\n seeLess = this.settings.seeLessHtml;\n }\n\n link = '' + seeLess + '';\n\n if (this.parentTagName === 'UL') {\n link = '
    • ' + link + '
    • ';\n }\n\n return $(link);\n }\n\n function addEventHandlers() {\n let originalHeight;\n let checkHeight;\n const that = this;\n const $this = $(this);\n let allowedKeys = [9, 13]; // tabs and enter (return)\n let allowTabToReadMore = true;\n\n if (that.settings.readMoreWithSpacebar) {\n allowedKeys = [9, 13, 32]; // tabs and enter (return) and spacebar\n }\n\n if (that.settings.animation) {\n checkHeight = true;\n }\n\n $this.on('touchend mousedown keydown', function (evt) {\n function readMore() {\n evt.preventDefault();\n const truncatedLength = $this.children().length;\n $this.data('truncatedContent', $this.html());\n $this.html($this.data('originalContent'));\n const lessLink = seeLessLink.call(that);\n $this.append(lessLink);\n\n if (that.settings.animation) {\n $this.css('height', 'auto');\n const autoHeight = $this.outerHeight(true);\n $this.height(originalHeight).animate({height: autoHeight}, 300);\n setTimeout(function () {\n $this.css('height', 'auto');\n }, 350);\n }\n\n if (evt.type === 'keydown') {\n if ($this[0].parentTagName === 'UL') {\n $this\n .children()\n .eq(truncatedLength - 1)\n .find('a')\n .trigger('focus');\n } else {\n lessLink.focus();\n }\n }\n }\n\n function readLess() {\n if (evt.keyCode === 9) {\n // preventing tabulation limbo\n return;\n } else {\n evt.preventDefault();\n }\n\n if (that.settings.animation) {\n $this.animate({height: originalHeight}, 300);\n setTimeout(function () {\n $this.html($this.data('truncatedContent'));\n }, 250);\n } else {\n $this.html($this.data('truncatedContent'));\n }\n\n $this.find('.read-more').focus();\n //var moreLink = seeMoreLink.call(that);\n //$(evt.target).replaceWith(moreLink);\n }\n if (evt.type === 'keydown' && allowedKeys.indexOf(evt.keyCode) < 0) {\n // preventing random keys from triggering action\n return;\n }\n\n if (that.settings.readMoreWithSpacebar) {\n allowTabToReadMore = evt.keyCode !== 9;\n }\n\n if (that.settings.animation) {\n if (checkHeight) {\n originalHeight = $this.outerHeight(true);\n checkHeight = false;\n }\n }\n\n if ($this.data('truncationDone') && allowTabToReadMore) {\n const $evtTarget = $(evt.target);\n if ($evtTarget.hasClass('ellipsis') && $evtTarget.is('a')) {\n // ellipsis clicked\n readMore();\n }\n\n if (\n ($evtTarget.hasClass('read-more') && !$evtTarget.hasClass('w-slide__btn')) ||\n ($evtTarget.parent().hasClass('read-more') && !$evtTarget.parent().hasClass('w-slide__btn')) ||\n $evtTarget.hasClass('removed-items-count')\n ) {\n // \"Read more\" link clicked\n readMore();\n }\n\n if ($evtTarget.hasClass('read-less') || $evtTarget.parent().hasClass('read-less')) {\n // \"Read less\" link clicked\n readLess();\n }\n }\n });\n\n if (!$(document).data('activeTabHandlerAdded')) {\n $(document).data('activeTabHandlerAdded', 'yes');\n $(document).on('tabs:changeActiveTab', function (evt, data) {\n setTimeout(function () {\n $('.truncate-delayed', data.tabId).truncate();\n }, 10);\n });\n }\n }\n\n function restoreContent() {\n var $this = $(this);\n if ($this.data('originalContent')) {\n $this.html($this.data('originalContent'));\n if (this.settings && this.settings.addClass) {\n $this.removeClass(this.settings.addClass);\n }\n }\n }\n\n function truncateStart() {\n var $this = $(this);\n if (this.settings.showRemovedCount) {\n $this.truncate('destroy'); // destroy in case showRemovedCount to get a correct number\n }\n\n if (\n (this.settings.isMobile && this.settings.targetViewport === 'desktop') ||\n (!this.settings.isMobile && this.settings.targetViewport === 'mobile')\n ) {\n restoreContent.call(this);\n return;\n }\n\n if ($this.closest('.tab__pane').length && !$this.closest('.tab__pane').hasClass('active')) {\n $this.addClass('truncate-delayed');\n return;\n } else {\n $this.removeClass('truncate-delayed');\n }\n\n if (this.settings && this.settings.type === 'text') {\n truncateText.call(this);\n } else if (this.settings && this.settings.type === 'list') {\n this.parentTagName = $this.get(0).tagName;\n truncateList.call(this);\n }\n }\n\n function addResponsiveHandlers() {\n var that = this;\n\n function targetViewportOn() {\n that.settings.isMobile = true;\n truncateStart.call(that);\n }\n\n function targetViewportOff() {\n that.settings.isMobile = false;\n truncateStart.call(that);\n }\n\n if (this.prevVPort) {\n // remove previous responsive handlers\n $(document).off(this.prevVPort + '-on', targetViewportOn);\n $(document).off(this.prevVPort + '-off', targetViewportOff);\n }\n\n $(document).on(this.settings.vPort + '-on', targetViewportOn); // Waiting for custom event that will be triggered by controller.js to activate responsive effects\n $(document).on(this.settings.vPort + '-off', targetViewportOff); // Waiting for custom event that will be triggered by controller.js to deactivate responsive effects\n\n this.prevVPort = this.settings.vPort;\n }\n\n methods = {\n init: function (options) {\n return this.each(function () {\n var $this = $(this);\n var firstInit = true;\n if ($this.data('originalContent')) {\n if ($this.data('settings')) {\n this.settings = $this.data('settings');\n }\n restoreContent.call(this);\n firstInit = false;\n } else {\n $this.data('originalContent', $this.html());\n }\n\n // read configuration from data attributes\n const dataAttrOptions = {};\n if ($this.data('truncate-lines')) {\n dataAttrOptions.lines = parseInt($this.data('truncate-lines'), 10);\n }\n if ($this.data('truncate-type')) {\n dataAttrOptions.type = $this.data('truncate-type');\n }\n if ($this.data('truncate-position')) {\n dataAttrOptions.position = $this.data('truncate-position');\n }\n if (typeof $this.data('truncate-show-removed-count') !== 'undefined') {\n dataAttrOptions.showRemovedCount = $this.data('truncate-show-removed-count');\n }\n if (typeof $this.data('truncate-see-more-link') !== 'undefined') {\n dataAttrOptions.seeMoreLink = $this.data('truncate-see-more-link');\n }\n if ($this.data('truncate-see-more-text')) {\n dataAttrOptions.seeMoreText = $this.data('truncate-see-more-text');\n }\n if ($this.data('truncate-see-less-text')) {\n dataAttrOptions.seeLessText = $this.data('truncate-see-less-text');\n }\n if ($this.data('truncate-see-more-html')) {\n dataAttrOptions.seeMoreHtml = $this.data('truncate-see-more-html');\n }\n if ($this.data('truncate-see-less-html')) {\n dataAttrOptions.seeLessHtml = $this.data('truncate-see-less-html');\n }\n if ($this.data('truncate-see-more-hidden-text')) {\n let hiddenTextHTML = $this.data('truncate-see-more-hidden-text');\n dataAttrOptions.seeMoreTextHidden = hiddenTextHTML\n ? ` ${hiddenTextHTML} `\n : '';\n } else {\n dataAttrOptions.seeMoreTextHidden = '';\n }\n if ($this.data('truncate-ellipsis-char')) {\n dataAttrOptions.ellipsisChar = $this.data('truncate-ellipsis-char');\n }\n if ($this.data('truncate-last-items-count')) {\n dataAttrOptions.lastItemsCount = parseInt($this.data('truncate-last-items-count'), 10);\n }\n if ($this.data('truncate-mobile-target')) {\n dataAttrOptions.mobileTarget = $this.data('truncate-mobile-target');\n }\n if ($this.data('truncate-add-class')) {\n dataAttrOptions.addClass = $this.data('truncate-add-class');\n }\n if ($this.data('truncate-vport')) {\n dataAttrOptions.vPort = $this.data('truncate-vport');\n }\n if ($this.data('truncate-target-viewport')) {\n dataAttrOptions.targetViewport = $this.data('truncate-target-viewport');\n }\n if (typeof $this.data('truncate-mid-word-enabled') !== 'undefined') {\n dataAttrOptions.midWordEnabled = $this.data('truncate-mid-word-enabled');\n }\n if (typeof $this.data('truncate-less-link-ellipsis') !== 'undefined') {\n dataAttrOptions.lessLinkEllipsis = $this.data('truncate-less-link-ellipsis');\n }\n\n this.settings = $.extend({}, this.settings || $.fn.truncate.defaults, dataAttrOptions, options || {});\n $this.data('settings', this.settings);\n $this.data('truncationDone', false);\n truncateStart.call(this);\n\n if (firstInit) {\n addEventHandlers.call(this);\n }\n\n addResponsiveHandlers.call(this);\n });\n },\n destroy: function () {\n return this.each(function () {\n restoreContent.call(this);\n });\n },\n };\n\n $.fn.truncate = function (method) {\n if (methods[method]) {\n return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));\n } else if (typeof method === 'object' || !method) {\n return methods.init.apply(this, arguments);\n } else {\n $.error('Method ' + method + ' does not exist on jQuery.truncate');\n }\n };\n\n $.fn.truncate.removedCountMarkup = function (count) {\n return $(' + ' + count + ' ');\n };\n\n /* Default truncate settings. */\n $.fn.truncate.defaults = {\n type: 'text', // text, list\n position: 'end', // end, middle, beforeLast, betweenFirstAndLast\n showRemovedCount: false,\n lines: 1,\n seeMoreLink: false,\n seeMoreText: 'See More',\n seeLessText: 'See Less',\n seeMoreIcon: 'icon-section_arrow_d',\n seeLessIcon: 'icon-section_arrow_u',\n seeMoreIconMobile: 'icon-arrow_r',\n seeMoreHtml: '',\n seeLessHtml: '',\n ellipsisChar: '…',\n lessLinkEllipsis: false,\n lastItemsCount: 1,\n isMobile: false,\n isSliding: true,\n mobileTarget: '',\n targetViewport: 'all', // all, desktop, mobile\n addClass: '',\n vPort: 'screen-sm',\n midWordEnabled: false,\n animation: false,\n ignoreCountList: null,\n readMoreWithSpacebar: false,\n onComplete: function () {},\n };\n})(jQuery);\n","(function () {\n UX.truncateInit = {\n init: function () {\n $('.creative-work__title').not(\"[data-truncate='none']\").truncate({\n lines: 3,\n addClass: 'min-height',\n });\n\n $('.creative-work .loa').not(\"[data-truncate='none']\").truncate({\n lines: 2,\n type: 'list',\n addClass: 'loa-height',\n });\n\n $('.featured .grid-item:first-child .creative-work__title').not(\"[data-truncate='none']\").truncate({\n lines: 2,\n addClass: 'min-height',\n });\n\n $('.card .creative-work__title').not(\"[data-truncate='none']\").truncate({\n lines: 2,\n addClass: 'min-height',\n });\n\n $('.card .creative-work .loa').not(\"[data-truncate='none']\").truncate({\n lines: 1,\n type: 'list',\n addClass: 'loa-height',\n });\n\n $(window).on('resized orientationchange', function () {\n $('.creative-work__title, .creative-work .loa').not(\"[data-truncate='none']\").truncate();\n });\n },\n };\n})();\n","(function () {\n var truncater = {\n $target: $('.js--truncate'),\n\n init: function () {\n truncater.truncate();\n },\n\n truncate: function () {\n truncater.$target.each(function () {\n $(this).truncate();\n });\n },\n };\n\n UX.truncater = truncater;\n})();\n","(function () {\n const tocJs = {\n $loa: null,\n vPort: 'screen-xs',\n init: function () {\n const $toSection = $('.to-section');\n if ($toSection.length) {\n $toSection.each(function () {\n var section = $(this).text();\n var id = $(this).attr('id');\n $('
    • ' + section + '
    • ').appendTo(\n '.sections__drop'\n );\n });\n } else {\n $('.toc-go-section, .toc__section').remove();\n }\n tocJs.$loa = $('.issue-item .loa, .search__item .meta__authors, .search__item .loa');\n tocJs.control();\n tocJs.additionalControl();\n },\n control() {\n $(window).on('load orientationchange', function (event) {\n tocJs.truncate();\n });\n\n $(document).on(tocJs.vPort + '-on', function () {\n // Waiting for custom event that will be triggered by controller.js to activate responsive effects\n tocJs.isMobile = true;\n tocJs.truncate();\n });\n\n $(document).on(tocJs.vPort + '-off', function () {\n // Waiting for custom event that will be triggered by controller.js to deactivate responsive effects\n tocJs.isMobile = false;\n tocJs.truncate();\n });\n },\n additionalControl() {},\n truncate() {\n try {\n tocJs.$loa.not(\"[data-truncate='none']\").truncate({\n lines: 2,\n type: 'list',\n seeMoreLink: true,\n seeMoreText: 'See all authors',\n seeLessText: 'See fewer authors',\n });\n } catch (err) {\n console.error(err);\n }\n },\n };\n UX.tocJs = tocJs; // add to global namespace\n})();\n","import 'ui-core/plugins/slide/js/slide';\n(function (UX) {\n var $body = $('body');\n let _ux3lvl_slide_init, _ux3lvl_slide_onShow, _ux3lvl_slide_onHide, _ux3lvl_slide_onOff;\n var slide = UX.slide;\n\n slide.vPort = 'screen-xs';\n\n // Save original functions\n\n _ux3lvl_slide_init = slide.init;\n _ux3lvl_slide_onShow = slide.on.show;\n _ux3lvl_slide_onHide = slide.on.hide;\n _ux3lvl_slide_onOff = slide.on.off;\n\n slide.init = function () {\n _ux3lvl_slide_init.apply(this, arguments);\n slide.$back.attr('tabindex', '-1');\n };\n\n slide.on.show = function () {\n _ux3lvl_slide_onShow.apply(this, arguments);\n slide.$back.removeAttr('tabindex');\n };\n\n slide.on.hide = function () {\n _ux3lvl_slide_onHide.apply(this, arguments);\n slide.$back.attr('tabindex', '-1');\n };\n\n slide.on.off = function () {\n _ux3lvl_slide_onOff.apply(this, arguments);\n slide.$back.attr('tabindex', '-1');\n };\n\n slide.responsive = function (index) {\n $(document).on(slide.vPort[index] + '-on', function () {\n // Waiting for custom event that will be triggered by controller.js to activate responsive effects\n slide.off = false;\n slide.$elements.css('transform', '');\n\n $('.w-slide__btn').each(function () {\n if ($(this).data('ctrl-res') === slide.vPort[index]) {\n $(this).addClass('slide-active');\n }\n });\n });\n\n $(document).on(slide.vPort[index] + '-off', function (e) {\n // Waiting for custom event that will be triggered by controller.js to activate responsive effects\n slide.off = true;\n slide.on.off(e);\n slide.$elements.css('transform', '');\n\n $('.w-slide__btn').each(function () {\n if ($(this).data('ctrl-res') === slide.vPort[index]) {\n $(this).removeClass('slide-active');\n }\n });\n });\n\n $(document).on(slide.elementvPort + '-on', function (e) {\n // Waiting for custom event that will be triggered by controller.js to activate responsive effects\n slide.isMobile = true;\n slide.$elements.css('margin-top', 0);\n\n slide.back = true;\n if ($body.attr('data-active') === 'slide') {\n slide.on.hide(e);\n }\n });\n\n $(document).on(slide.elementvPort + '-off', function (e) {\n // Waiting for custom event that will be triggered by controller.js to activate responsive effects\n slide.isMobile = false;\n\n slide.back = true;\n if ($body.attr('data-active') === 'slide') {\n slide.on.hide(e);\n }\n });\n };\n})(UX);\n","(function () {\n const $body = $('body');\n\n var slide = {\n $slide: null,\n $target: null,\n $contents: null,\n $slideinfo: null,\n $toggle: null,\n prev: null,\n isMobile: false,\n vPort: 'screen-sm',\n elementvPort: null,\n back: false,\n nested: false,\n multi: false,\n activeSlide: 0,\n oldInfo: [],\n off: null,\n clone: null,\n wait: false,\n backLabel: 'back',\n $elements: null,\n isQueue: false,\n isRTL: false,\n\n init: function () {\n slide.$slide =\n '';\n\n slide.$elements = $(slide.$slide);\n slide.displaySlideHtmlToPage();\n\n slide.$contents = slide.$elements.find('.w-slide__content');\n slide.$slideinfo = slide.$elements.find('.w-slide__title');\n slide.$back = slide.$elements.find('.w-slide__back');\n slide.$toggle = $('.w-slide__btn');\n\n slide.elementvPort = slide.vPort;\n slide.vPort = [];\n\n slide.customViewPorts();\n\n slide.$toggle.each(function (index) {\n slide.check.viewPort($(this), index);\n slide.responsive(index);\n });\n\n slide.additionalInitialization();\n slide.control();\n slide.additionalControls();\n if (typeof facetDateChart != 'undefined') {\n facetDateChart.control(); /*eslint-disable-line*/\n }\n\n if (UX.utils && UX.utils.isRTL()) {\n slide.isRTL = true;\n }\n },\n displaySlideHtmlToPage: () => {\n let $main = $('main');\n if ($main.length > 0) $main.append(slide.$elements);\n else $body.append(slide.$elements);\n },\n additionalInitialization: function () {},\n responsive: function (index) {\n $(document).on(slide.vPort[index] + '-on', function () {\n // Waiting for custom event that will be triggered by controller.js to activate responsive effects\n slide.off = false;\n\n $('.w-slide__btn').each(function () {\n if ($(this).data('ctrl-res') === slide.vPort[index]) {\n $(this).addClass('slide-active');\n }\n });\n });\n\n $(document).on(slide.vPort[index] + '-off', function (e) {\n // Waiting for custom event that will be triggered by controller.js to activate responsive effects\n slide.off = true;\n slide.on.off(e);\n\n $('.w-slide__btn').each(function () {\n if ($(this).data('ctrl-res') === slide.vPort[index]) {\n $(this).removeClass('slide-active');\n }\n });\n });\n\n $(document).on(slide.elementvPort + '-on', function (e) {\n // Waiting for custom event that will be triggered by controller.js to activate responsive effects\n slide.isMobile = true;\n slide.$elements.css('margin-top', 0);\n if ($('.w-slide.js--open').length) {\n slide.back = true;\n slide.on.hide(e);\n }\n });\n\n $(document).on(slide.elementvPort + '-off', function (e) {\n // Waiting for custom event that will be triggered by controller.js to activate responsive effects\n slide.isMobile = false;\n if ($('.w-slide.js--open').length) {\n slide.back = true;\n slide.on.hide(e);\n }\n });\n\n slide.additionalResponsive();\n },\n additionalResponsive: function () {},\n control: function () {\n $body.on('click', '.w-slide__btn', function (e) {\n if (slide.isQueue && slide.isMobile) {\n e.stopImmediatePropagation();\n $(this).off('click');\n return false;\n }\n slide.isQueue = true;\n\n if ($(this).hasClass('disable')) {\n e.stopPropagation();\n e.preventDefault();\n return;\n }\n\n if ($(this).hasClass('slide-active')) {\n e.stopPropagation();\n e.preventDefault();\n slide.addTransition();\n slide.$toggle = $(this);\n slide.$target = $(slide.$toggle.data('slide-target'));\n slide.back = false;\n\n if ($(this).is('[id*=pane-pcw]') && UX.tab.check.empty($(this))) {\n setTimeout(function () {\n slide.on.show(e);\n }, 3000);\n } else {\n slide.on.show(e);\n }\n }\n });\n\n $body.on('click', '.w-slide__back, .w-slide__hide', function (e) {\n if ($(this).hasClass('w-slide__back')) {\n e.preventDefault();\n }\n\n slide.back = true;\n slide.on.hide(e);\n });\n },\n additionalControls: function () {},\n addTransition: function () {\n $('.w-slide, .w-slide__content').css('transition', 'all 250ms');\n },\n removeTransition: function () {\n $('.w-slide, .w-slide__content').css('transition', '');\n },\n customViewPorts: function () {\n if ($('.journal-home').length) {\n slide.elementvPort = 'screen-md';\n }\n },\n setBackLabel: function () {\n slide.$back.html('' + slide.backLabel);\n },\n on: {\n show: function (e) {\n $(document).trigger('UX-detach');\n if (typeof jcf != 'undefined') {\n jcf.destroy($('.range-slider__range')); /*eslint-disable-line*/\n }\n\n /**\n * Fire \"open\" event\n * this event is Cancelable: which means if e.preventDefault() is called then the slide will not open.\n */\n const openingEvent = $.Event('slide:open');\n $(document).trigger(openingEvent, [slide]);\n if (openingEvent.isDefaultPrevented()) {\n return;\n }\n\n if ($body.attr('data-active') !== 'undefined') {\n UX.controller.check(e);\n }\n\n if (slide.$toggle.is('[data-full-screen]') && !slide.$toggle.data('[full-screen]') && !slide.isMobile)\n $body.addClass('w-slide__not-fullWidth');\n else $body.removeClass('w-slide__not-fullWidth');\n\n slide.nested = slide.$toggle.parents('.w-slide__content').length > 0;\n slide.multi =\n slide.$toggle.closest('.pill-list').length > 0 || slide.$toggle.is('[data-slide-target*=\"#pill\"]');\n if (slide.$toggle.closest('.w-slide__pill').length > 0) {\n slide.nested = false;\n slide.multi = true;\n }\n\n const popupType = e.currentTarget?.getAttribute('aria-haspopup');\n if (popupType) slide.$elements.attr('role', popupType === 'true' ? 'menu' : popupType);\n\n slide.on.additionalShow();\n\n slide.$slideinfo.hide().removeClass('js--open');\n slide.backLabel = 'back';\n slide.setBackLabel();\n\n if (slide.nested) {\n slide.on._nestSlide();\n }\n\n if (slide.multi) {\n if (slide.activeSlide !== 0) {\n slide.back = true;\n slide.on.hide(e);\n }\n\n slide.activeSlide++;\n slide.$elements\n .addClass('w-slide__pill')\n .find('.w-slide__content')\n .append('
      ');\n slide.$contents = $('.nested--' + slide.activeSlide);\n }\n\n slide.$contents.attr('original-target', slide.$toggle.data('slide-target'));\n\n if (slide.$target.hasClass('tab__pane')) {\n slide.$target.closest('.tab__content').find('.tab__pane').removeClass('active');\n slide.$target.addClass('active');\n }\n\n let label = slide.$toggle.text();\n if (slide.$toggle.is('[data-label]')) {\n label = slide.$toggle.data('label');\n }\n\n //LIT-163835\n if (slide.$toggle.hasClass('loa') || slide.$toggle.parents('.loa.mobile-authors').length > 0) {\n label = 'AUTHORS';\n }\n\n let clonedDiv = slide.$target.children();\n\n slide.on.destroyJcf(clonedDiv);\n\n if (slide.$toggle.is('[data-slide-clone]')) {\n slide.clone = slide.$toggle.data('slide-clone');\n\n if (slide.clone === 'self') {\n clonedDiv = slide.$target;\n }\n } else {\n slide.clone = '';\n }\n\n slide.oldInfo.push(label);\n slide.$slideinfo.html(label);\n\n const isLoi = slide.$target.find('.loi').length > 0;\n if (isLoi) {\n slide.$contents.append(clonedDiv.html());\n $('.dropBlock-loi__holder .loi').remove();\n slide.$contents.find('.loi__list').each(function () {\n UX.loi.on.recalculate($(this));\n });\n } else {\n if (slide.clone === 'self') {\n if (slide.nested || slide.multi) {\n slide.$target.after('
      ');\n } else {\n slide.$target.after('
      ');\n }\n } else {\n if (slide.nested || slide.multi) {\n slide.$target.append('
      ');\n } else {\n slide.$target.append('
      ');\n }\n }\n\n clonedDiv.appendTo(slide.$contents);\n\n slide.on.rebuildJcf(slide.$contents);\n }\n\n // This is needed for refreshing the google ads iframe\n // because we are cloning it into element\n // for more info: https://stackoverflow.com/questions/435391/refresh-a-div-that-has-a-google-ad-inside-it/12083756#12083756\n if (typeof googletag !== 'undefined' && typeof googletag.pubads !== 'undefined') { /*eslint-disable-line*/\n googletag.pubads().refresh(); /*eslint-disable-line*/\n }\n $body.addClass('lock-screen slide-is-active').attr('data-active', 'slide');\n slide.$back.focus();\n\n const $coolBar = $('.coolBar');\n if ($coolBar.length) {\n $coolBar.addClass('slide');\n }\n /*\n $('.w-slide__title').truncate({\n lines: 1\n });\n */\n\n // \"opened\" event\n const openEvent = $.Event('slide:opened');\n\n if (slide.wait) {\n setTimeout(function () {\n slide.on._showSlide();\n slide.on.slidePill();\n $(document).trigger(openEvent, [slide]);\n }, 150);\n slide.wait = false;\n } else {\n slide.on._showSlide();\n $(document).trigger(openEvent, [slide]);\n }\n\n $(document).trigger('UX-attach');\n },\n _showSlide: function () {\n var slideWidth = '100%';\n\n var $slidedDiv = slide.$elements;\n if (slide.nested || slide.multi) {\n $slidedDiv = slide.$contents;\n }\n\n if (!slide.$elements.hasClass('js--open') && slide.multi) {\n $slidedDiv = $('[class*=nested--], .w-slide');\n }\n let translate = `-${slideWidth}`;\n if (slide.isRTL) {\n translate = slideWidth;\n }\n\n $slidedDiv\n .css('transform', `translateX(${translate})`)\n .off()\n .one('transitionend webkitTransitionEnd oTransitionEnd', function (e) {\n e.stopPropagation();\n slide.isQueue = false;\n slide.removeTransition();\n });\n slide.$slideinfo.show().addClass('js--open');\n slide.$elements.addClass('js--open');\n slide.on.additionalShowSlide();\n },\n _nestSlide: function () {\n slide.activeSlide++;\n slide.$contents.append('
      ');\n slide.$contents = $('.nested--' + slide.activeSlide);\n },\n additionalShow: function () {},\n additionalShowSlide: function () {},\n slidePill: function () {},\n hide: function (e) {\n const isInsideSlide = $(e.target).closest('.w-slide').length;\n /**\n * Fire \"close\" event\n * this event is Cancelable: which means if e.preventDefault() is called then the slide will not close.\n */\n var closingEvent = $.Event('slide:close');\n $(document).trigger(closingEvent, [slide]);\n if (closingEvent.isDefaultPrevented()) {\n return;\n }\n\n if (typeof e !== 'undefined' && $('.w-slide').hasClass('js--open')) {\n if (!isInsideSlide) {\n slide.back = true;\n }\n }\n\n if (slide.back) {\n slide.addTransition();\n slide.$slideinfo.hide().removeClass('js--open');\n\n slide.nested = true;\n\n if (slide.activeSlide === 0) {\n slide.nested = false;\n slide.$contents = slide.$elements.children('.w-slide__content');\n } else {\n slide.$contents = $('.nested--' + slide.activeSlide);\n }\n slide.on.destroyJcf(slide.$contents);\n\n let originalTarget = $(slide.$contents.attr('original-target'));\n if (!originalTarget) {\n originalTarget = $body;\n }\n\n const isLoi = slide.$elements.find('.loi').length > 0;\n\n slide.on.beforeReturnSlideContent();\n\n if (isLoi) {\n const $dropBlockHolder = $('.dropBlock-loi__holder');\n $dropBlockHolder.append(slide.$contents.html());\n $dropBlockHolder.find('.loi__list').each(function () {\n UX.loi.on.recalculate($(this));\n });\n } else {\n if (slide.$contents.find('[class*=nested--]').length) {\n slide.$contents.find('[class*=nested--]').remove();\n }\n slide.on._returnDataSlide(originalTarget);\n slide.on.rebuildJcf(originalTarget);\n }\n\n slide.oldInfo.splice(slide.activeSlide, 1);\n slide.$slideinfo.html(slide.oldInfo[slide.activeSlide - 1]);\n if (slide.$toggle) {\n slide.$toggle.focus();\n }\n\n if (slide.nested) {\n slide.activeSlide--;\n slide.on._hideSlide();\n if (slide.multi) {\n slide.$contents.remove();\n }\n slide.$contents = $('.nested--' + slide.activeSlide);\n if (slide.activeSlide === 0) {\n slide.$contents = slide.$elements.children('.w-slide__content');\n }\n } else {\n slide.activeSlide = 0;\n $('body, html').removeClass('lock-screen');\n $body.removeClass('lock-screen slide-is-active').removeAttr('data-active');\n const $coolBar = $('.coolBar');\n if ($coolBar.length) {\n $coolBar.removeClass('slide');\n }\n\n slide.on._hideSlide();\n slide.$elements.removeClass('js--open');\n slide.$elements.removeAttr('role');\n }\n slide.$slideinfo.show().addClass('js--open');\n\n slide.backLabel = 'back';\n slide.setBackLabel();\n slide.on.additionalHide(e);\n\n if (slide.$elements.hasClass('w-slide__pill')) {\n while (slide.activeSlide > 0) {\n slide.activeSlide--;\n slide.on.hide(e);\n }\n\n if (\n typeof e !== 'undefined' &&\n ($(e.target).hasClass('w-slide__back') || $(e.currentTarget).hasClass('w-slide__back')) &&\n slide.activeSlide === 0\n ) {\n slide.on.off(e);\n }\n }\n\n if (!isInsideSlide && !(typeof e !== 'undefined' && $(e.target).closest('.pill-list').length)) {\n slide.on.off(e);\n }\n\n slide.removeTransition();\n }\n\n // This is needed for refreshing the google ads iframe\n // because we are cloning it into element\n // for more info: https://stackoverflow.com/questions/435391/refresh-a-div-that-has-a-google-ad-inside-it/12083756#12083756\n if (typeof googletag !== 'undefined' && typeof googletag.pubads !== 'undefined') { /*eslint-disable-line*/\n googletag.pubads().refresh(); /*eslint-disable-line*/\n }\n\n // \"closed\" event\n const closeEvent = $.Event('slide:closed');\n $(document).trigger(closeEvent, [slide]);\n },\n _hideSlide: function () {\n let updateTarget = slide.$elements;\n if (slide.nested) updateTarget = slide.$contents;\n\n updateTarget\n .css('transform', 'translateX(0vw)')\n .off()\n .one('transitionend webkitTransitionEnd oTransitionEnd', function (e) {\n e.stopPropagation();\n if (slide.back)\n if (!slide.nested) slide.$contents.empty();\n else $(this).remove();\n });\n },\n _returnDataSlide: function (originalTarget) {\n const returnDataSlideHere =\n slide.nested || slide.multi ? '.returnNestedDataSlideHere' : '.returnDataSlideHere';\n const $returnDataSlideHere =\n slide.clone === 'self' ? $(returnDataSlideHere) : $(returnDataSlideHere, originalTarget);\n slide.$contents.children().appendTo($returnDataSlideHere.parent());\n $returnDataSlideHere.remove();\n },\n additionalHide: function (e) {},\n beforeReturnSlideContent: function () {},\n off: function (e) {\n slide.$slideinfo.hide().removeClass('js--open');\n\n $('.pill-list li').removeClass('pill-active');\n\n const isLoi = slide.$elements.find('.loi').length > 0;\n\n if (isLoi) {\n slide.$contents = $('.loi').closest('.w-slide__content');\n\n const $dropBlockHolder = $('.dropBlock-loi__holder');\n $dropBlockHolder.append(slide.$contents.html());\n $dropBlockHolder.find('.loi__list').each(function () {\n UX.loi.on.recalculate($(this));\n });\n }\n $('body, html').removeClass('lock-screen');\n $body.removeClass('lock-screen slide-is-active').removeAttr('data-active');\n $('.coolBar').removeClass('slide');\n slide.$contents = slide.$elements.children('.w-slide__content');\n slide.$elements\n .css('transform', 'translateX(0vw)')\n .off()\n .one('transitionend webkitTransitionEnd oTransitionEnd', function (e) {\n e.stopPropagation();\n slide.$elements.removeClass('js--open');\n if (slide.off) {\n $('.w-slide').removeClass('w-slide__pill');\n slide.$contents.empty();\n }\n });\n slide.off = false;\n slide.on.additionalOff(e);\n },\n additionalOff: function (e) {},\n destroyJcf: function ($el) {\n if (typeof jcf != 'undefined') {\n jcf.destroy($el.find('.jcf')); /*eslint-disable-line*/\n }\n },\n rebuildJcf: function ($el) {\n if (typeof jcf != 'undefined') {\n jcf.replace($el.find('.jcf')); /*eslint-disable-line*/\n }\n },\n },\n check: {\n viewPort: function ($el, index) {\n if (typeof $el.data('ctrl-res') !== 'undefined') {\n slide.vPort[index] = $el.data('ctrl-res');\n } else {\n $el.data('ctrl-res', slide.elementvPort);\n slide.vPort[index] = slide.elementvPort;\n }\n },\n },\n };\n\n UX.slide = slide; // add to global namespace\n})();\n","(function () {\n var $body = $('body');\n var reponsiveMenu = {\n vPort: 'screen-sm',\n elementvPort: null,\n isMobile: false, // variable use to determine if responsive mode is on or off\n $menuContainer: $('.responsive-menu-container'),\n leftSectionWidth: null,\n rightSectionWidth: null,\n maxMenuItemWidth: 135,\n $moreDropsown: $('.responsive-menu-nav .menubar > .dropdown-more'),\n $menu: $('.responsive-menu-nav >.drawer__nav'),\n $menuWrapper: $('.responsive-menu-nav'),\n\n init: function () {\n reponsiveMenu.elementvPort = reponsiveMenu.vPort;\n reponsiveMenu.vPort = [];\n $('.responsive-menu-container').each(function (index) {\n reponsiveMenu.check.viewPort(index, $(this));\n reponsiveMenu.responsive(index);\n });\n reponsiveMenu.control();\n reponsiveMenu.on.build();\n },\n\n responsive: function (index) {\n $(document).on(reponsiveMenu.vPort[index] + '-on', function () {\n reponsiveMenu.isMobile = true;\n\n $('.responsive-menu-container').each(function () {\n if ($(this).data('ctrl-res') === reponsiveMenu.vPort[index]) {\n $(this).addClass('js--disabled-responsive-menu'); // class will be used in our scss (to replace media queries)\n }\n });\n });\n\n $(document).on(reponsiveMenu.vPort[index] + '-off', function () {\n reponsiveMenu.isMobile = false;\n\n $('.responsive-menu-container').each(function () {\n if ($(this).data('ctrl-res') === reponsiveMenu.vPort[index]) {\n $(this).removeClass('js--disabled-responsive-menu'); // class will be used in our scss (to replace media queries)\n }\n });\n });\n },\n\n control: function () {\n $(window).on('resize', function () {\n reponsiveMenu.modifyMenu();\n });\n\n $body.on('touchend', '.dropdown-more >a, .dropdown.menu-parent>a ', function (e) {\n if ($(this).parents('.dropdown-more').length > 0 && !$(this).parent().hasClass('.dropdown-more')) {\n $('.responsive-menu-nav .js--opened:not(.dropdown-more)')\n .not($(this).parent())\n .removeClass('js--opened');\n } else {\n $('.responsive-menu-nav .js--opened').not($(this).parent()).removeClass('js--opened');\n }\n\n $(this).parent().toggleClass('js--opened');\n if (!$(this).parent().hasClass('js--opened')) {\n $(this).parent().addClass('js--forceClose');\n } else {\n $(this).parent().removeClass('js--forceClose');\n }\n });\n\n $body.click(function (e) {\n $('.responsive-menu-nav .js--opened:not(:hover)').removeClass('js--opened');\n });\n },\n on: {\n build: function () {\n reponsiveMenu.$menuWrapper.show();\n reponsiveMenu.modifyMenu();\n\n setTimeout(function () {\n reponsiveMenu.modifyMenu();\n }, 800);\n },\n },\n modifyMenu: function () {\n $('.responsive-menu-container').each(function () {\n reponsiveMenu.$menuContainer = $(this);\n reponsiveMenu.$moreDropsown = reponsiveMenu.$menuContainer.find('.dropdown-more');\n\n if (!reponsiveMenu.$menuContainer.hasClass('js--disabled-responsive-menu')) {\n reponsiveMenu.leftSectionWidth = reponsiveMenu.$menuContainer.find('.left-section').width();\n reponsiveMenu.rightSectionWidth = reponsiveMenu.$menuContainer.find('.right-section').width();\n reponsiveMenu.$menu = reponsiveMenu.$menuContainer.find('.drawer__nav');\n reponsiveMenu.$menuWrapper = reponsiveMenu.$menuContainer.find('.responsive-menu-nav');\n\n const availableMenuWidth =\n reponsiveMenu.$menuContainer.width() -\n (reponsiveMenu.leftSectionWidth + reponsiveMenu.rightSectionWidth + 35);\n let menuWidth = reponsiveMenu.$menu.width();\n\n if (availableMenuWidth > 0 && menuWidth > 0) {\n if (menuWidth > availableMenuWidth) {\n while (menuWidth > availableMenuWidth) {\n const $lastMenuItem = reponsiveMenu.$menu\n .find('.menubar > [role=\"menuitem\"]:not(.dropdown-more)')\n .last();\n if ($lastMenuItem.length > 0) {\n reponsiveMenu.$moreDropsown.removeClass('hidden');\n reponsiveMenu.$moreDropsown\n .find('>.dropdown__menu')\n .prepend($lastMenuItem[0].outerHTML);\n $lastMenuItem.remove();\n menuWidth = reponsiveMenu.$menu.width();\n } else {\n break;\n }\n }\n } else if (\n availableMenuWidth > menuWidth + reponsiveMenu.maxMenuItemWidth &&\n !reponsiveMenu.$moreDropsown.hasClass('hidden')\n ) {\n while (availableMenuWidth > menuWidth) {\n const $moreItems = reponsiveMenu.$moreDropsown.find(\n '.dropdown__menu [role=\"menuitem\"]'\n );\n const $firstMoreItem = $moreItems.first();\n if ($firstMoreItem.length > 0) {\n reponsiveMenu.$moreDropsown.before($firstMoreItem[0].outerHTML);\n\n if ($moreItems.length <= 1) {\n reponsiveMenu.$moreDropsown.addClass('hidden');\n }\n\n $firstMoreItem.remove();\n menuWidth = reponsiveMenu.$menu.width();\n } else {\n break;\n }\n }\n\n if (menuWidth > availableMenuWidth) {\n reponsiveMenu.modifyMenu();\n }\n }\n }\n } else {\n if (!reponsiveMenu.$moreDropsown.hasClass('hidden')) {\n reponsiveMenu.$moreDropsown.addClass('hidden');\n reponsiveMenu.$moreDropsown.before(reponsiveMenu.$moreDropsown.find('.dropdown__menu').html());\n reponsiveMenu.$moreDropsown.find('.dropdown__menu').empty();\n }\n }\n });\n },\n check: {\n viewPort: function (index, $el) {\n if (typeof $el.data('ctrl-res') != 'undefined' || $el.data('ctrl-res') === '') {\n reponsiveMenu.vPort[index] = $el.data('ctrl-res');\n } else {\n $el.data('ctrl-res', reponsiveMenu.elementvPort);\n reponsiveMenu.vPort[index] = reponsiveMenu.elementvPort;\n }\n },\n },\n };\n\n UX.reponsiveMenu = reponsiveMenu; // add to global namespace\n})();\n","/**\n stickybits - Stickybits is a lightweight alternative to `position: sticky` polyfills\n @version v3.6.5\n @link https://github.com/dollarshaveclub/stickybits#readme\n @author Jeff Wainwright (https://jeffry.in)\n @license MIT\n**/\n/*eslint-disable*/\n/*\n STICKYBITS πŸ’‰\n --------\n > a lightweight alternative to `position: sticky` polyfills 🍬\n --------\n - each method is documented above it our view the readme\n - Stickybits does not manage polymorphic functionality (position like properties)\n * polymorphic functionality: (in the context of describing Stickybits)\n means making things like `position: sticky` be loosely supported with position fixed.\n It also means that features like `useStickyClasses` takes on styles like `position: fixed`.\n --------\n defaults πŸ”Œ\n --------\n - version = `package.json` version\n - userAgent = viewer browser agent\n - target = DOM element selector\n - noStyles = boolean\n - offset = number\n - parentClass = 'string'\n - scrollEl = window || DOM element selector || DOM element\n - stickyClass = 'string'\n - stuckClass = 'string'\n - useStickyClasses = boolean\n - useFixed = boolean\n - useGetBoundingClientRect = boolean\n - verticalPosition = 'string'\n --------\n propsπŸ”Œ\n --------\n - p = props {object}\n --------\n instance note\n --------\n - stickybits parent methods return this\n - stickybits instance methods return an instance item\n --------\n nomenclature\n --------\n - target => el => e\n - props => o || p\n - instance => item => it\n --------\n methods\n --------\n - .definePosition = defines sticky or fixed\n - .addInstance = an array of objects for each Stickybits Target\n - .getClosestParent = gets the parent for non-window scroll\n - .getTopPosition = gets the element top pixel position from the viewport\n - .computeScrollOffsets = computes scroll position\n - .toggleClasses = older browser toggler\n - .manageState = manages sticky state\n - .removeClass = older browser support class remover\n - .removeInstance = removes an instance\n - .cleanup = removes all Stickybits instances and cleans up dom from stickybits\n*/\nvar Stickybits =\n/*#__PURE__*/\nfunction () {\n const stickyOnEvent = document.createEvent('CustomEvent'),\n stickyOffEvent = document.createEvent('CustomEvent');\n stickyOnEvent.initCustomEvent('sticky-on', true, false, {});\n stickyOffEvent.initCustomEvent('sticky-off', true, false, {});\n\n function Stickybits(target, obj) {\n var o = typeof obj !== 'undefined' ? obj : {};\n this.version = '3.6.5';\n this.userAgent = window.navigator.userAgent || 'no `userAgent` provided by the browser';\n this.props = {\n customStickyChangeNumber: o.customStickyChangeNumber || null,\n noStyles: o.noStyles || false,\n stickyBitStickyOffset: o.stickyBitStickyOffset || 0,\n parentClass: o.parentClass || 'js-stickybit-parent',\n scrollEl: typeof o.scrollEl === 'string' ? document.querySelector(o.scrollEl) : o.scrollEl || window,\n stickyClass: o.stickyClass || 'js-is-sticky',\n stuckClass: o.stuckClass || 'js-is-stuck',\n stickyChangeClass: o.stickyChangeClass || 'js-is-sticky--change',\n useStickyClasses: o.useStickyClasses || false,\n useFixed: o.useFixed || false,\n useGetBoundingClientRect: o.useGetBoundingClientRect || false,\n verticalPosition: o.verticalPosition || 'top'\n /*\n define positionVal\n ----\n - uses a computed (`.definePosition()`)\n - defined the position\n */\n\n };\n this.props.positionVal = this.definePosition() || 'fixed';\n this.instances = [];\n var _this$props = this.props,\n positionVal = _this$props.positionVal,\n verticalPosition = _this$props.verticalPosition,\n noStyles = _this$props.noStyles,\n stickyBitStickyOffset = _this$props.stickyBitStickyOffset,\n useStickyClasses = _this$props.useStickyClasses;\n var verticalPositionStyle = verticalPosition === 'top' && !noStyles ? stickyBitStickyOffset + \"px\" : '';\n var positionStyle = positionVal !== 'fixed' ? positionVal : '';\n this.els = typeof target === 'string' ? document.querySelectorAll(target) : target;\n if (!('length' in this.els)) this.els = [this.els];\n\n for (var i = 0; i < this.els.length; i++) {\n var el = this.els[i]; // set vertical position\n\n el.style[verticalPosition] = verticalPositionStyle;\n el.style.position = positionStyle;\n\n if (positionVal === 'fixed' || useStickyClasses) {\n // instances are an array of objects\n this.instances.push(this.addInstance(el, this.props));\n }\n }\n }\n /*\n setStickyPosition βœ”οΈ\n --------\n β€” most basic thing stickybits does\n => checks to see if position sticky is supported\n => defined the position to be used\n => stickybits works accordingly\n */\n\n\n var _proto = Stickybits.prototype;\n\n _proto.definePosition = function definePosition() {\n var stickyProp;\n\n if (this.props.useFixed) {\n stickyProp = 'fixed';\n } else {\n var prefix = ['', '-o-', '-webkit-', '-moz-', '-ms-'];\n var test = document.head.style;\n\n for (var i = 0; i < prefix.length; i += 1) {\n test.position = prefix[i] + \"sticky\";\n }\n\n stickyProp = test.position ? test.position : 'fixed';\n test.position = '';\n }\n\n return stickyProp;\n }\n /*\n addInstance βœ”οΈ\n --------\n β€” manages instances of items\n - takes in an el and props\n - returns an item object\n ---\n - target = el\n - o = {object} = props\n - scrollEl = 'string' | object\n - verticalPosition = number\n - off = boolean\n - parentClass = 'string'\n - stickyClass = 'string'\n - stuckClass = 'string'\n ---\n - defined later\n - parent = dom element\n - state = 'string'\n - offset = number\n - stickyStart = number\n - stickyStop = number\n - returns an instance object\n */\n ;\n\n _proto.addInstance = function addInstance(el, props) {\n var _this = this;\n\n var item = {\n el: el,\n parent: el.parentNode,\n props: props\n };\n this.isWin = this.props.scrollEl === window;\n var se = this.isWin ? window : this.getClosestParent(item.el, item.props.scrollEl);\n this.computeScrollOffsets(item);\n item.parent.className += \" \" + props.parentClass;\n item.state = 'default';\n\n item.stateContainer = function () {\n return _this.manageState(item);\n };\n\n se.addEventListener('scroll', item.stateContainer);\n return item;\n }\n /*\n --------\n getParent πŸ‘¨β€\n --------\n - a helper function that gets the target element's parent selected el\n - only used for non `window` scroll elements\n - supports older browsers\n */\n ;\n\n _proto.getClosestParent = function getClosestParent(el, match) {\n // p = parent element\n var p = match;\n var e = el;\n if (e.parentElement === p) return p; // traverse up the dom tree until we get to the parent\n\n while (e.parentElement !== p) {\n e = e.parentElement;\n } // return parent element\n\n\n return p;\n }\n /*\n --------\n getTopPosition\n --------\n - a helper function that gets the topPosition of a Stickybit element\n - from the top level of the DOM\n */\n ;\n\n _proto.getTopPosition = function getTopPosition(el) {\n if (this.props.useGetBoundingClientRect) {\n return el.getBoundingClientRect().top + (this.props.scrollEl.pageYOffset || document.documentElement.scrollTop);\n }\n\n var topPosition = 0;\n\n do {\n topPosition = el.offsetTop + topPosition;\n } while (el = el.offsetParent);\n\n return topPosition;\n }\n /*\n computeScrollOffsets πŸ“Š\n ---\n computeScrollOffsets for Stickybits\n - defines\n - offset\n - start\n - stop\n */\n ;\n\n _proto.computeScrollOffsets = function computeScrollOffsets(item) {\n var it = item;\n var p = it.props;\n var el = it.el;\n var parent = it.parent;\n var isCustom = !this.isWin && p.positionVal === 'fixed';\n var isTop = p.verticalPosition !== 'bottom';\n var scrollElOffset = isCustom ? this.getTopPosition(p.scrollEl) : 0;\n var stickyStart = isCustom ? this.getTopPosition(parent) - scrollElOffset : this.getTopPosition(parent);\n var stickyChangeOffset = p.customStickyChangeNumber !== null ? p.customStickyChangeNumber : el.offsetHeight;\n var parentBottom = stickyStart + parent.offsetHeight;\n it.offset = scrollElOffset + p.stickyBitStickyOffset;\n it.stickyStart = isTop ? stickyStart - it.offset : 0;\n it.stickyChange = it.stickyStart + stickyChangeOffset;\n it.stickyStop = isTop ? parentBottom - (el.offsetHeight + it.offset) : parentBottom - window.innerHeight;\n }\n /*\n toggleClasses βš–οΈ\n ---\n toggles classes (for older browser support)\n r = removed class\n a = added class\n */\n ;\n\n _proto.toggleClasses = function toggleClasses(el, r, a) {\n var e = el;\n var cArray = e.className.split(' ');\n if (a && cArray.indexOf(a) === -1) cArray.push(a);\n var rItem = cArray.indexOf(r);\n if (rItem !== -1) cArray.splice(rItem, 1);\n e.className = cArray.join(' ');\n }\n /*\n manageState πŸ“\n ---\n - defines the state\n - normal\n - sticky\n - stuck\n */\n ;\n\n _proto.manageState = function manageState(item) {\n // cache object\n var it = item;\n var e = it.el;\n var p = it.props;\n var state = it.state;\n var start = it.stickyStart;\n var change = it.stickyChange;\n var stop = it.stickyStop;\n var stl = e.style; // cache props\n\n var ns = p.noStyles;\n var pv = p.positionVal;\n var se = p.scrollEl;\n var sticky = p.stickyClass;\n var stickyChange = p.stickyChangeClass;\n var stuck = p.stuckClass;\n var vp = p.verticalPosition;\n var isTop = vp !== 'bottom';\n /*\n requestAnimationFrame\n ---\n - use rAF\n - or stub rAF\n */\n\n var rAFStub = function rAFDummy(f) {\n f();\n };\n\n var rAF = !this.isWin ? rAFStub : window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || window.msRequestAnimationFrame || rAFStub;\n /*\n define scroll vars\n ---\n - scroll\n - notSticky\n - isSticky\n - isStuck\n */\n\n var tC = this.toggleClasses;\n var scroll = this.isWin ? window.scrollY || window.pageYOffset : se.scrollTop;\n var notSticky = scroll > start && scroll < stop && (state === 'default' || state === 'stuck');\n var isSticky = isTop && scroll <= start && (state === 'sticky' || state === 'stuck');\n var isStuck = scroll >= stop && state === 'sticky';\n /*\n Unnamed arrow functions within this block\n ---\n - help wanted or discussion\n - view test.stickybits.js\n - `stickybits .manageState `position: fixed` interface` for more awareness πŸ‘€\n */\n\n if (notSticky) {\n it.state = 'sticky';\n rAF(function () {\n tC(e, stuck, sticky);\n stl.position = pv;\n if (ns) return;\n stl.bottom = '';\n stl[vp] = p.stickyBitStickyOffset + \"px\";\n e.dispatchEvent(stickyOnEvent);\n });\n } else if (isSticky) {\n it.state = 'default';\n rAF(function () {\n tC(e, sticky);\n tC(e, stuck);\n if (pv === 'fixed') stl.position = '';\n e.dispatchEvent(stickyOffEvent);\n });\n } else if (isStuck) {\n it.state = 'stuck';\n rAF(function () {\n tC(e, sticky, stuck);\n if (pv !== 'fixed' || ns) return;\n stl.top = '';\n stl.bottom = '0';\n stl.position = 'absolute';\n });\n }\n\n var isStickyChange = scroll >= change && scroll <= stop;\n var isNotStickyChange = scroll < change / 2 || scroll > stop;\n var stub = 'stub'; // a stub css class to remove\n\n if (isNotStickyChange) {\n rAF(function () {\n tC(e, stickyChange);\n });\n } else if (isStickyChange) {\n rAF(function () {\n tC(e, stub, stickyChange);\n });\n }\n };\n\n _proto.update = function update(updatedProps) {\n if (updatedProps === void 0) {\n updatedProps = null;\n }\n\n for (var i = 0; i < this.instances.length; i += 1) {\n var instance = this.instances[i];\n this.computeScrollOffsets(instance);\n\n if (updatedProps) {\n for (var updatedProp in updatedProps) {\n instance.props[updatedProp] = updatedProps[updatedProp];\n }\n }\n }\n\n return this;\n }\n /*\n removes an instance πŸ‘‹\n --------\n - cleanup instance\n */\n ;\n\n _proto.removeInstance = function removeInstance(instance) {\n var e = instance.el;\n var p = instance.props;\n var tC = this.toggleClasses;\n e.style.position = '';\n e.style[p.verticalPosition] = '';\n tC(e, p.stickyClass);\n tC(e, p.stuckClass);\n tC(e.parentNode, p.parentClass);\n }\n /*\n cleanup πŸ›\n --------\n - cleans up each instance\n - clears instance\n */\n ;\n\n _proto.cleanup = function cleanup() {\n for (var i = 0; i < this.instances.length; i += 1) {\n var instance = this.instances[i];\n instance.props.scrollEl.removeEventListener('scroll', instance.stateContainer);\n this.removeInstance(instance);\n }\n\n this.manageState = false;\n this.instances = [];\n };\n\n return Stickybits;\n}();\n/*\n export\n --------\n exports StickBits to be used 🏁\n*/\n\n\nfunction stickybits(target, o) {\n return new Stickybits(target, o);\n}\n\nexport default stickybits;\n","import stickybits from 'ui-core/plugins/stickybits/js/stickybits.es';\n\n(function ($, UX) {\n const sticky = {\n stickyNodes: [],\n stickyTargets:\n '.header, .issue-navigator, .navbar, .article__aside, .article__navbar, .table-of-content__nav, .tos-list',\n init() {\n this.stickyNodes = document.querySelectorAll(this.stickyTargets);\n this.setHeaderHeight();\n this.setSticky();\n },\n setHeaderHeight() {\n // set the initial value of --header-height to override the default values\n $('body')\n .get(0)\n .style.setProperty('--header-height', $('.header').innerHeight() + 'px');\n\n // to cover the case when resize from smaller screens to web and page reload\n $(window).resize(function () {\n // On resize\n $('body')\n .get(0)\n .style.setProperty('--header-height', $('.header').innerHeight() + 'px');\n });\n // cover case when jump from Simulater viewport into web and on page reload\n $(document).on('smartResize', function () {\n $('body')\n .get(0)\n .style.setProperty('--header-height', $('.header').innerHeight() + 'px');\n });\n },\n setSticky() {\n if (!UX.test.isIE() || UX.test.isIE() > 11) {\n return;\n }\n stickybits(`${this.stickyTargets}, .article__navbar__secondary`, {useStickyClasses: true});\n this.stickyNodes.forEach(function (node) {\n const nodeWinOffset = node.getBoundingClientRect();\n node.style.left = nodeWinOffset.left + 'px';\n node.style.width = nodeWinOffset.width + 'px';\n node.style.right = window.outerWidth - nodeWinOffset.right + 'px';\n });\n },\n };\n\n $(() => {\n sticky.init();\n });\n})(jQuery, UX);\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.4.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n/*eslint-disable*/\nimport $ from 'jquery';\nimport Util from '../../../utility/js/bootstrap-utils';\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal';\nconst VERSION = '4.4.1';\nconst DATA_KEY = 'bs.modal';\nconst EVENT_KEY = `.${DATA_KEY}`;\nconst DATA_API_KEY = '.data-api';\nconst JQUERY_NO_CONFLICT = $.fn[NAME];\nconst ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true,\n};\n\nconst DefaultType = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean',\n};\n\nconst Event = {\n HIDE: `hide${EVENT_KEY}`,\n HIDE_PREVENTED: `hidePrevented${EVENT_KEY}`,\n HIDDEN: `hidden${EVENT_KEY}`,\n SHOW: `show${EVENT_KEY}`,\n SHOWN: `shown${EVENT_KEY}`,\n FOCUSIN: `focusin${EVENT_KEY}`,\n RESIZE: `resize${EVENT_KEY}`,\n CLICK_DISMISS: `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS: `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS: `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS: `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API: `click${EVENT_KEY}${DATA_API_KEY}`,\n};\n\nconst ClassName = {\n SCROLLABLE: 'modal-dialog-scrollable',\n SCROLLBAR_MEASURER: 'modal-scrollbar-measure',\n BACKDROP: 'modal-backdrop',\n OPEN: 'modal-open',\n FADE: 'fade',\n SHOW: 'in',\n STATIC: 'modal-static',\n};\n\nconst Selector = {\n DIALOG: '.modal-dialog',\n MODAL_BODY: '.modal-body',\n DATA_TOGGLE: '[data-toggle=\"modal\"]',\n DATA_DISMISS: '[data-dismiss=\"modal\"]',\n FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT: '.sticky-top',\n};\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config);\n this._element = element;\n this._dialog = element.querySelector(Selector.DIALOG);\n this._backdrop = null;\n this._isShown = false;\n this._isBodyOverflowing = false;\n this._ignoreBackdropClick = false;\n this._isTransitioning = false;\n this._scrollbarWidth = 0;\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION;\n }\n\n static get Default() {\n return Default;\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return;\n }\n\n if ($(this._element).hasClass(ClassName.FADE)) {\n this._isTransitioning = true;\n }\n\n const showEvent = $.Event(Event.SHOW, {\n relatedTarget,\n });\n\n $(this._element).trigger(showEvent);\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return;\n }\n\n this._isShown = true;\n\n this._checkScrollbar();\n this._setScrollbar();\n\n this._adjustDialog();\n\n this._setEscapeEvent();\n this._setResizeEvent();\n\n $(this._element).on(Event.CLICK_DISMISS, Selector.DATA_DISMISS, event => this.hide(event));\n\n $(this._dialog).on(Event.MOUSEDOWN_DISMISS, () => {\n $(this._element).one(Event.MOUSEUP_DISMISS, event => {\n if ($(event.target).is(this._element)) {\n this._ignoreBackdropClick = true;\n }\n });\n });\n\n this._showBackdrop(() => this._showElement(relatedTarget));\n }\n\n hide(event) {\n if (event) {\n event.preventDefault();\n }\n\n if (!this._isShown || this._isTransitioning) {\n return;\n }\n\n const hideEvent = $.Event(Event.HIDE);\n\n $(this._element).trigger(hideEvent);\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return;\n }\n\n this._isShown = false;\n const transition = $(this._element).hasClass(ClassName.FADE);\n\n if (transition) {\n this._isTransitioning = true;\n }\n\n this._setEscapeEvent();\n this._setResizeEvent();\n\n $(document).off(Event.FOCUSIN);\n\n $(this._element).removeClass(ClassName.SHOW);\n\n $(this._element).off(Event.CLICK_DISMISS);\n $(this._dialog).off(Event.MOUSEDOWN_DISMISS);\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element);\n\n $(this._element)\n .one(Util.TRANSITION_END, event => this._hideModal(event))\n .emulateTransitionEnd(transitionDuration);\n } else {\n this._hideModal();\n }\n }\n\n dispose() {\n [window, this._element, this._dialog].forEach(htmlElement => $(htmlElement).off(EVENT_KEY));\n\n /**\n * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `Event.CLICK_DATA_API` event that should remain\n */\n $(document).off(Event.FOCUSIN);\n\n $.removeData(this._element, DATA_KEY);\n\n this._config = null;\n this._element = null;\n this._dialog = null;\n this._backdrop = null;\n this._isShown = null;\n this._isBodyOverflowing = null;\n this._ignoreBackdropClick = null;\n this._isTransitioning = null;\n this._scrollbarWidth = null;\n }\n\n handleUpdate() {\n this._adjustDialog();\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config,\n };\n Util.typeCheckConfig(NAME, config, DefaultType);\n return config;\n }\n\n _triggerBackdropTransition() {\n if (this._config.backdrop === 'static') {\n const hideEventPrevented = $.Event(Event.HIDE_PREVENTED);\n\n $(this._element).trigger(hideEventPrevented);\n if (hideEventPrevented.defaultPrevented) {\n return;\n }\n\n this._element.classList.add(ClassName.STATIC);\n\n const modalTransitionDuration = Util.getTransitionDurationFromElement(this._element);\n\n $(this._element)\n .one(Util.TRANSITION_END, () => {\n this._element.classList.remove(ClassName.STATIC);\n })\n .emulateTransitionEnd(modalTransitionDuration);\n this._element.focus();\n } else {\n this.hide();\n }\n }\n\n _showElement(relatedTarget) {\n const transition = $(this._element).hasClass(ClassName.FADE);\n const modalBody = this._dialog ? this._dialog.querySelector(Selector.MODAL_BODY) : null;\n\n if (!this._element.parentNode || this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element);\n }\n\n this._element.style.display = 'block';\n this._element.removeAttribute('aria-hidden');\n this._element.setAttribute('aria-modal', true);\n\n if ($(this._dialog).hasClass(ClassName.SCROLLABLE) && modalBody) {\n modalBody.scrollTop = 0;\n } else {\n this._element.scrollTop = 0;\n }\n\n if (transition) {\n Util.reflow(this._element);\n }\n\n $(this._element).addClass(ClassName.SHOW);\n\n if (this._config.focus) {\n this._enforceFocus();\n }\n\n const shownEvent = $.Event(Event.SHOWN, {\n relatedTarget,\n });\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus();\n }\n this._isTransitioning = false;\n $(this._element).trigger(shownEvent);\n };\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._dialog);\n\n $(this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration);\n } else {\n transitionComplete();\n }\n }\n\n _enforceFocus() {\n $(document)\n .off(Event.FOCUSIN) // Guard against infinite focus loop\n .on(Event.FOCUSIN, event => {\n if (\n document !== event.target &&\n this._element !== event.target &&\n $(this._element).has(event.target).length === 0\n ) {\n this._element.focus();\n }\n });\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n $(this._element).on(Event.KEYDOWN_DISMISS, event => {\n if (event.which === ESCAPE_KEYCODE) {\n this._triggerBackdropTransition();\n }\n });\n } else if (!this._isShown) {\n $(this._element).off(Event.KEYDOWN_DISMISS);\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n $(window).on(Event.RESIZE, event => this.handleUpdate(event));\n } else {\n $(window).off(Event.RESIZE);\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none';\n this._element.setAttribute('aria-hidden', true);\n this._element.removeAttribute('aria-modal');\n this._isTransitioning = false;\n this._showBackdrop(() => {\n $(document.body).removeClass(ClassName.OPEN);\n this._resetAdjustments();\n this._resetScrollbar();\n $(this._element).trigger(Event.HIDDEN);\n });\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n $(this._backdrop).remove();\n this._backdrop = null;\n }\n }\n\n _showBackdrop(callback) {\n const animate = $(this._element).hasClass(ClassName.FADE) ? ClassName.FADE : '';\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div');\n this._backdrop.className = ClassName.BACKDROP;\n\n if (animate) {\n this._backdrop.classList.add(animate);\n }\n\n $(this._backdrop).appendTo(document.body);\n\n $(this._element).on(Event.CLICK_DISMISS, event => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false;\n return;\n }\n if (event.target !== event.currentTarget) {\n return;\n }\n\n this._triggerBackdropTransition();\n });\n\n if (animate) {\n Util.reflow(this._backdrop);\n }\n\n $(this._backdrop).addClass(ClassName.SHOW);\n\n if (!callback) {\n return;\n }\n\n if (!animate) {\n callback();\n return;\n }\n\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);\n\n $(this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration);\n } else if (!this._isShown && this._backdrop) {\n $(this._backdrop).removeClass(ClassName.SHOW);\n\n const callbackRemove = () => {\n this._removeBackdrop();\n if (callback) {\n callback();\n }\n };\n\n if ($(this._element).hasClass(ClassName.FADE)) {\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callbackRemove)\n .emulateTransitionEnd(backdropTransitionDuration);\n } else {\n callbackRemove();\n }\n } else if (callback) {\n callback();\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`;\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`;\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = '';\n this._element.style.paddingRight = '';\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect();\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth;\n this._scrollbarWidth = this._getScrollbarWidth();\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n const fixedContent = [].slice.call(document.querySelectorAll(Selector.FIXED_CONTENT));\n const stickyContent = [].slice.call(document.querySelectorAll(Selector.STICKY_CONTENT));\n\n // Adjust fixed content padding\n $(fixedContent).each((index, element) => {\n const actualPadding = element.style.paddingRight;\n const calculatedPadding = $(element).css('padding-right');\n $(element)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`);\n });\n\n // Adjust sticky content margin\n $(stickyContent).each((index, element) => {\n const actualMargin = element.style.marginRight;\n const calculatedMargin = $(element).css('margin-right');\n $(element)\n .data('margin-right', actualMargin)\n .css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`);\n });\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight;\n const calculatedPadding = $(document.body).css('padding-right');\n $(document.body)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`);\n }\n\n $(document.body).addClass(ClassName.OPEN);\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n const fixedContent = [].slice.call(document.querySelectorAll(Selector.FIXED_CONTENT));\n $(fixedContent).each((index, element) => {\n const padding = $(element).data('padding-right');\n $(element).removeData('padding-right');\n element.style.paddingRight = padding ? padding : '';\n });\n\n // Restore sticky content\n const elements = [].slice.call(document.querySelectorAll(`${Selector.STICKY_CONTENT}`));\n $(elements).each((index, element) => {\n const margin = $(element).data('margin-right');\n if (typeof margin !== 'undefined') {\n $(element).css('margin-right', margin).removeData('margin-right');\n }\n });\n\n // Restore body padding\n const padding = $(document.body).data('padding-right');\n $(document.body).removeData('padding-right');\n document.body.style.paddingRight = padding ? padding : '';\n }\n\n _getScrollbarWidth() {\n // thx d.walsh\n const scrollDiv = document.createElement('div');\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER;\n document.body.appendChild(scrollDiv);\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY);\n const _config = {\n ...Default,\n ...$(this).data(),\n ...(typeof config === 'object' && config ? config : {}),\n };\n\n if (!data) {\n data = new Modal(this, _config);\n $(this).data(DATA_KEY, data);\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`);\n }\n data[config](relatedTarget);\n } else if (_config.show) {\n data.show(relatedTarget);\n }\n });\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target;\n const selector = Util.getSelectorFromElement(this);\n\n if (selector) {\n target = document.querySelector(selector);\n }\n\n const config = $(target).data(DATA_KEY)\n ? 'toggle'\n : {\n ...$(target).data(),\n ...$(this).data(),\n };\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault();\n }\n\n const $target = $(target).one(Event.SHOW, showEvent => {\n if (showEvent.isDefaultPrevented()) {\n // Only register focus restorer if modal will actually get shown\n return;\n }\n\n $target.one(Event.HIDDEN, () => {\n if ($(this).is(':visible')) {\n this.focus();\n }\n });\n });\n\n Modal._jQueryInterface.call($(target), config, this);\n});\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Modal._jQueryInterface;\n$.fn[NAME].Constructor = Modal;\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT;\n return Modal._jQueryInterface;\n};\n\nexport default Modal;\n","import 'ui-core/widgets/table-of-content/js/table-of-content';\n\n(function () {\n const tocJs = UX.tocJs;\n const tocTranslation = document.querySelector('.toc-js__translation');\n const seeMoreText = (tocTranslation && tocTranslation.dataset.seeMoreText) || 'See all authors';\n const seeLessText = (tocTranslation && tocTranslation.dataset.seeLessText) || 'See fewer authors';\n tocJs.init = () => {\n const $toSection = $('.to-section');\n if ($toSection.length) {\n $toSection.each(function () {\n const $this = $(this),\n section = $this.text(),\n id = $(this).attr('id');\n $(\n '
    • ' +\n section +\n '
    • '\n ).appendTo('.sections__drop');\n });\n } else {\n $('.toc-go-section, .toc__section').remove();\n }\n tocJs.$loa = $(\n '.issue-item .loa, .search__item .meta__authors, .search__item .loa, .search-item .meta__authors, .search-item .loa'\n );\n tocJs.control();\n };\n tocJs.truncate = () => {\n try {\n tocJs.$loa.not(\"[data-truncate='none']\").truncate({\n lines: 2,\n type: 'list',\n seeMoreLink: true,\n seeMoreText: seeMoreText,\n seeLessText: seeLessText,\n });\n } catch (err) {\n console.error(err);\n }\n };\n UX.tocJs = tocJs;\n})();\n","import {\n BrowserUtils,\n ComponentElements,\n ComponentInjector,\n ComponentObject,\n ComponentSelector,\n ComponentSelectors,\n ComponentService,\n Inject,\n UIComponent\n} from '@atypon/ui-utils';\n\nclass Texts extends ComponentObject {\n}\n\nclass ClassList extends ComponentObject {\n}\n\nclass Selectors extends ComponentSelectors {\n addRangeFields = new ComponentSelector('.ip-ranges__add-range input[name=\"ipRanges\"]');\n addRangeSubmitButtons = new ComponentSelector('.ip-ranges__add-range input[type=\"submit\"]');\n updateRangesCheckboxes = new ComponentSelector('.ip-ranges__update-range tr:not(.ip-ranges__update-range__ignore-conflicts) input[type=\"checkbox\"]');\n updateRangesSubmitButtons = new ComponentSelector('.ip-ranges__update-range input[type=\"submit\"]');\n}\n\nclass Elements extends ComponentElements {\n addRangeFields: Array = [];\n addRangeSubmitButtons: Array = [];\n updateRangesCheckboxes: Array = [];\n updateRangesSubmitButtons: Array = [];\n}\n\ninterface ipRanges extends ComponentService {\n}\n\n@ComponentInjector(Selectors, Elements, ClassList, Texts)\nclass ipRanges implements UIComponent {\n @Inject()\n protected browserUtils: BrowserUtils;\n\n constructor(readonly wrapper: HTMLElement) {\n }\n\n initialize(): void {\n this.elements.initialize(this.wrapper);\n this.addEventListeners();\n }\n\n addEventListeners(): void {\n this.elements.addRangeFields.forEach((field) => {\n field.addEventListener('input', this.handleAddRangeFieldChange.bind(this, field));\n });\n this.elements.updateRangesCheckboxes.forEach(checkbox => {\n checkbox.addEventListener('change', this.handleUpdateRangeFieldChange.bind(this, checkbox));\n });\n }\n\n protected handleAddRangeFieldChange(): void {\n const anyIsEmpty = this.elements.addRangeFields.some(field => field.value.trim() === '');\n this.setSubmitButtonsDisable(this.elements.addRangeSubmitButtons, anyIsEmpty)\n }\n\n protected handleUpdateRangeFieldChange(): void {\n const anyIsChecked = this.elements.updateRangesCheckboxes.some(checkbox => checkbox.checked);\n this.setSubmitButtonsDisable(this.elements.updateRangesSubmitButtons, !anyIsChecked)\n }\n\n protected setSubmitButtonsDisable(array: Array = [], isDisabled: boolean): void {\n array.forEach(button => {\n button.disabled = isDisabled;\n })\n }\n}\n\nexport default ipRanges;\n\nexport {\n Elements as IpRangesElements,\n Selectors as IpRangesSelectors,\n ClassList as IpRangesClassList,\n Texts as IpRangesTexts,\n}","\n import '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250204-c9c27144/ui-products/siam/node_modules/ui-theme/js/components/_truncater';\n \nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250204-c9c27144/ui-products/siam/node_modules/ui-theme/js/widgets/_table-of-content';\n \nconst main = (UX) => {\n const $truncater = Array.prototype.slice.call(document.querySelectorAll('.js--truncate,.creative-work__title,.loa,.teaser__title')),\n $tocJs = Array.prototype.slice.call(document.querySelectorAll('.loa,.meta__authors'))\n\ntry {\n if ($truncater.length ) {\n UX.truncater.init($truncater);\n }\n } catch (err) {\n console.error(err);\n }\n \ntry {\n if ($tocJs.length ) {\n UX.tocJs.init($tocJs);\n }\n } catch (err) {\n console.error(err);\n }\n \n}\n\n export default main;\n ","\n import '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250204-c9c27144/ui-products/siam/node_modules/ui-theme/js/components/_drawer';\n \nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250204-c9c27144/ui-products/siam/js/components/slide';\n \nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250204-c9c27144/ui-products/siam/node_modules/ui-core/widgets/menu/js/responsive-menu';\n \nconst main = (UX) => {\n const $menu = Array.prototype.slice.call(document.getElementsByClassName('drawer__nav')),\n $slide = Array.prototype.slice.call(document.getElementsByClassName('w-slide__btn')),\n $reponsiveMenu = Array.prototype.slice.call(document.getElementsByClassName('responsive-menu-nav'))\n\ntry {\n if ($menu.length ) {\n UX.menu.init($menu);\n }\n } catch (err) {\n console.error(err);\n }\n \ntry {\n if ($slide.length ) {\n UX.slide.init($slide);\n }\n } catch (err) {\n console.error(err);\n }\n \ntry {\n if ($reponsiveMenu.length ) {\n UX.reponsiveMenu.init($reponsiveMenu);\n }\n } catch (err) {\n console.error(err);\n }\n \n}\n\n export default main;\n ","\n import '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250204-c9c27144/ui-products/siam/node_modules/ui-core/utility/js/no-focusable-svg';\n\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250204-c9c27144/ui-products/siam/node_modules/ui-core/utility/js/observe-dom';\n\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250204-c9c27144/ui-products/siam/node_modules/ui-theme/js/utility/_sticky';\n\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250204-c9c27144/ui-products/siam/node_modules/ui-core/plugins/cookies/js/cookies';\n\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250204-c9c27144/ui-products/siam/node_modules/ui-core/basic/lists/js/list';\n\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250204-c9c27144/ui-products/siam/node_modules/ui-theme/js/components/_modal';\n\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250204-c9c27144/ui-products/siam/node_modules/ui-core/components/alert-popup/js/alert-popup';\n\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250204-c9c27144/ui-products/siam/node_modules/ui-core/components/accordion/js/accordion';\n\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250204-c9c27144/ui-products/siam/node_modules/ui-theme/js/components/transplant';\n\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250204-c9c27144/ui-products/siam/node_modules/ui-core/components/drop-block/js/drop-block';\n\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250204-c9c27144/ui-products/siam/node_modules/ui-core/components/back-to-top/js/back-to-top';\n\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250204-c9c27144/ui-products/siam/js/components/_teaser';\n\nimport ipRanges from '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250204-c9c27144/ui-products/siam/node_modules/ui-core/widgets/ip-ranges/js/ip-ranges';\nimport QuickSearch from '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250204-c9c27144/ui-products/siam/js/widgets/quick-search';\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250204-c9c27144/ui-products/siam/js/widgets/_quick-search-inputs';\n\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250204-c9c27144/ui-products/siam/node_modules/ui-core/widgets/ad-placeholder/js/ad-placeholder';\n\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250204-c9c27144/ui-products/siam/node_modules/ui-core/widgets/multi-search/js/multi-search';\n\nimport '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250204-c9c27144/ui-products/siam/node_modules/ui-core/widgets/raa/js/raa';\n\nimport truncateMain from './groups/_truncate';\nimport mobileMenuMain from './groups/_mobile-menu';\nconst main = (UX) => {\n const $list = Array.prototype.slice.call(document.getElementsByClassName('expandable-list')),\n $modal = Array.prototype.slice.call(document.getElementsByClassName('modal')),\n $alertPopup = Array.prototype.slice.call(document.getElementsByClassName('ux-alert-container')),\n $accordion = Array.prototype.slice.call(document.getElementsByClassName('accordion')),\n $transplant = Array.prototype.slice.call(document.querySelectorAll('[data-toggle=\"transplant\"]')),\n $dropBlock = Array.prototype.slice.call(document.querySelectorAll('[data-db-target-for]')),\n $backToTop = Array.prototype.slice.call(document.getElementsByClassName('back-to-top')),\n $ipRanges = Array.prototype.slice.call(document.getElementsByClassName('ipRangesWidget')),\n $quickSearch = Array.prototype.slice.call(document.getElementsByClassName('quick-search')),\n $quickSearchInputs = Array.prototype.slice.call(document.getElementsByClassName('quick-search')),\n $adplaceholder = Array.prototype.slice.call(document.getElementsByClassName('js__toggleAdForm')),\n $multiSearch = Array.prototype.slice.call(document.getElementsByClassName('multi-search'))\n\ntry {\n UX.noFocusableSVG.init();\n } catch (err) {\n console.error(err);\n }\n \ntry {\n if ($list.length ) {\n UX.list.init($list);\n }\n } catch (err) {\n console.error(err);\n }\n \ntry {\n if ($modal.length ) {\n UX.modal.init($modal);\n }\n } catch (err) {\n console.error(err);\n }\n \ntry {\n if ($alertPopup.length ) {\n UX.alertPopup.init($alertPopup);\n }\n } catch (err) {\n console.error(err);\n }\n \ntry {\n if ($accordion.length ) {\n UX.accordion.init($accordion);\n }\n } catch (err) {\n console.error(err);\n }\n \ntry {\n if ($transplant.length ) {\n UX.transplant.init($transplant);\n }\n } catch (err) {\n console.error(err);\n }\n \ntry {\n if ($dropBlock.length ) {\n UX.dropBlock.init($dropBlock);\n }\n } catch (err) {\n console.error(err);\n }\n \ntry {\n if ($backToTop.length ) {\n UX.backToTop.init($backToTop);\n }\n } catch (err) {\n console.error(err);\n }\n \ntry {\n if ($ipRanges.length ) {\n UX.ipRanges = $ipRanges\n .map(item=>new ipRanges(item).initialize())\n }\n } catch (err) {\n console.error(err);\n }\n \ntry {\n if ($quickSearch.length ) {\n UX.quickSearch = $quickSearch\n .map(item=>new QuickSearch(item).initialize())\n }\n } catch (err) {\n console.error(err);\n }\n \ntry {\n if ($quickSearchInputs.length ) {\n UX.quickSearchInputs.init($quickSearchInputs);\n }\n } catch (err) {\n console.error(err);\n }\n \ntry {\n if ($adplaceholder.length ) {\n UX.adplaceholder.init($adplaceholder);\n }\n } catch (err) {\n console.error(err);\n }\n \ntry {\n if ($multiSearch.length ) {\n UX.multiSearch.init($multiSearch);\n }\n } catch (err) {\n console.error(err);\n }\n \ntruncateMain(UX);\n\nmobileMenuMain(UX);\n\n}\n\n export default main;\n ","var toPropertyKey = require(\"./toPropertyKey.js\");\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nmodule.exports = _defineProperty, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;"],"sourceRoot":""}