{"version":3,"sources":["javascripts/vendor.bundles/vendor.bundle/ua-parser.min.js","javascripts/mobile/globals.bundle/jquery.mmenu.js","javascripts/mobile/globals.bundle/nativeHook.js","javascripts/vendor.bundles/globals.bundle/helpers-ts.js","javascripts/vendor.bundles/globals.bundle/idle-timeout-ts.js","javascripts/vendor.bundles/globals.bundle/idle-modal-ts.js","javascripts/mobile/globals.bundle/helpers.js","javascripts/mobile/globals.bundle/utils.js","javascripts/mobile/globals.bundle/jquery.extensions.js","javascripts/mobile/globals.bundle/jquery-helpers.js","javascripts/vendor.bundles/globals.bundle/password-togglefication.js","javascripts/vendor.bundles/globals.bundle/feature-detect-ts.js"],"names":["window","undefined","LIBVERSION","EMPTY","UNKNOWN","FUNC_TYPE","UNDEF_TYPE","OBJ_TYPE","STR_TYPE","MAJOR","MODEL","NAME","TYPE","VENDOR","VERSION","ARCHITECTURE","CONSOLE","MOBILE","TABLET","SMARTTV","WEARABLE","EMBEDDED","UA_MAX_LENGTH","AMAZON","APPLE","ASUS","BLACKBERRY","BROWSER","CHROME","EDGE","FIREFOX","GOOGLE","HUAWEI","LG","MICROSOFT","MOTOROLA","OPERA","SAMSUNG","SHARP","SONY","VIERA","XIAOMI","ZEBRA","FACEBOOK","CHROMIUM_OS","MAC_OS","extend","regexes","extensions","mergedRegexes","i","length","concat","enumerize","arr","enums","toUpperCase","has","str1","str2","lowerize","indexOf","str","toLowerCase","majorize","version","replace","split","trim","len","substring","rgxMapper","ua","arrays","j","k","p","q","matches","match","regex","props","exec","call","test","strMapper","map","oldSafariMap","windowsVersionMap","ME","XP","Vista","RT","browser","cpu","device","engine","os","UAParser","getResult","_navigator","navigator","_ua","userAgent","_uach","userAgentData","_rgxmap","_isSelfNav","getBrowser","_browser","brave","isBrave","getCPU","_cpu","getDevice","_device","mobile","standalone","maxTouchPoints","getEngine","_engine","getOS","_os","platform","getUA","setUA","CPU","DEVICE","ENGINE","OS","exports","module","define","amd","$","jQuery","Zepto","parser","get","set","result","prop","t","a","l","r","d","s","e","n","this","$menu","_api","opts","conf","vars","cbck","___deprecated","_initMenu","_initAnchors","children","panelNodetype","_initAddons","init","___debug","addons","uniqueId","defaults","onClick","setSelected","slidingSubmenus","configuration","classNames","panel","vertical","selected","divider","spacer","clone","openingInterval","transitionDuration","prototype","not","nopanel","_initPanels","trigger","update","find","listview","removeClass","addClass","openPanel","parent","hasClass","parents","subopened","first","opened","current","filter","highest","hidden","setTimeout","closePanel","closeAllPanels","togglePanel","getInstance","bind","push","Array","slice","arguments","shift","apply","offCanvas","add","each","attr","mm","contents","nodeType","remove","wrapper","menu","join","__findAddBack","nolistview","__refactorClass","is","wrap","removeAttr","__getUniqueId","last","data","sub","next","insertBefore","fullsubopen","closest","prepend","header","btn","prev","title","text","hasheader","o","parentsUntil","end","c","appendTo","$body","on","click","clickAnchor","h","preventDefault","__valueOrFn","target","u","blockUI","$html","blocking","close","setup","__api","__filterListItems","__transitionend","one","transitionend","webkitTransitionEnd","fn","glbl","$wndw","umm","_c","_d","_e","support","touch","msMaxTouchPoints","merge","position","zposition","pageSelector","pageNodetype","$allMenus","offcanvas","setPage","$page","_initBlocker","menuInjectMethod","menuWrapperSelector","open","modal","moveBackground","_openSetup","_openFinish","closeAllOthers","style","resize","background","opening","wrapAll","page","slideout","off","keydown","keyCode","height","css","$blck","blocker","touchstart","touchmove","stopPropagation","mousedown","navigationBarJson","isNativeApp","isNativeAppWithNativeMenu","isAndroid","isReadyForRefresh","nativeHook","setNavBar","navBarJson","getNavBar","getNavBarString","JSON","stringify","updateNavBar","location","href","Alkami","Helpers","getQueryStringFromUrl","url","RegExp","$1","getQueryObjectFromUrl","let","params","queryStringList","tmp","decodeURI","getUrlParamFromUrl","name","results","getQueryParams","returnObj","toString","getUrlParam","hash","parseDate","input","format","Utils","DateHelper","maskCard","cardNo","localCardNo","_str","p1","p2","p3","moneyRenderer","amount","allowZero","parseFloat","toLocaleString","moneyRendererAllowZero","v","localizeAmount","num","toFixed","unlocalizeAmount","val","formatNumber","value","unformatMoney","isNaN","formatMoney","formattedAmount","money","startsWith","bindDecimalFields","from","document","querySelectorAll","forEach","decimalFieldElement","addEventListener","stopEvent","noNegative","classList","contains","which","KEY_CODES","DELETE","BACKSPACE","PERIOD","TAB","COMMA","NUMPAD_SUBTRACT","bindRequiredFields","labelElement","querySelector","id","async","instructify","element","event","URL","getAttribute","baseURI","origin","Error","contentElement","Dom","parseHTML","createCloseDialog","innerText","cls","destroyOnClose","response","fetch","innerHTML","sideNavElement","panelElement","hideElement","listItemElement","listItemEvent","currentActivePanelItem","newlyActivePanelItem","showElement","firstListItemElement","firstPanel","IdleTimeout","constructor","options","_options","delay","pollDelay","keepAliveEvents","_done","_resetPoll","clearTimeout","_timer","timeLeft","duration","_pollHandler","_dispatchEvent","cancel","_eventHandler","type","resetTimer","_element","Object","assign","_initEventListeners","eventName","_destroyEventListeners","removeEventListener","CustomEvent","bubbles","cancelable","detail","dispatchEvent","_startTime","Date","now","onDocumentReady","isDebug","debugMode","isPublic","Globals","isAuthenticated","isRegistration","pathname","includes","isAuthentication","pingUrl","logoutUrl","isMobileUrl","isNativeTablet","isNativeTabletApplication","isNative","isNativeApplication","setInterval","credentials","then","Promise","resolve","reject","catch","localizedSessionDialog","sessionBodyMarkup","stillHereButtonText","logoutButtonText","modalTitleText","dataset","bodyContent","sessionModalTitle","sessionPrompt","createDialog","content","handlers","logout","clearInterval","sessionDialogCountdown","idleTimeout","buttons","handlerName","closePrompt","idleElement","documentElement","idleLogoutMinutes","counter","sessionTimeoutCountdownElement","getElementById","updateCountdown","delayWindowMS","currentIdleWindowMS","startTime","Math","ceil","alkBottomPanel","$openedBottomPanels","openedClass","$element","body","$blocker","insertAdjacentHTML","isPanelOpen","setAttribute","formatCurrency","decimal","parts","mobileUtils","showFlashMessage","message","keys","FlashBanner","flashBanner","types","show","hideFlashMessage","hide","removeFlashMessage","monthsBetween","serializeHash","serializeArray","bindCurrencyFields","digits","padded","dollars","cents","partialPanelHeaderScrollEffect","$this","panelScrollDistance","scrollTop","$panelHeader","formatAmountInput","defaultAmountText","focus","blur","global","PasswordTogglefication","inputElement","newOptions","tagName","self","defaultOptions","parentElement","parentNode","inputType","wrapperElement","createElement","wrapperElementType","toggleButtonElement","wrapperClass","className","toggleButtonClass","togglePassword","passwordOnBlur","TYPES","PASSWORD","appendChild","setType","startState","toggledType","VISIBLE","toggleCallback","isPassword","fromClass","typeVisibleClass","typePasswordClass","toClass","toggleButtonPasswordContent","toggleButtonVisibleContent","Localization","SiteText","ko","bindingHandlers","passwordTogglefication","valueAccessor","unwrap","FeatureDetection","features","detectFeatures","clearAttributes","tuple","removeAttribute","refreshAttributes","hasNativeMenu","hasNativePinSupport","isAndroidBrowser","isIOSBrowser","isIPadBrowser","instance"],"mappings":";;;AAGA,CAAC,QAAQ,CAACA,MAAM,CAACC,SAAS,CAAC,CAAC,YAAY,CAAC,IAAIC,UAAU,CAAC,QAAQ,CAACC,KAAK,CAAC,EAAE,CAACC,OAAO,CAAC,GAAG,CAACC,SAAS,CAAC,UAAU,CAACC,UAAU,CAAC,WAAW,CAACC,QAAQ,CAAC,QAAQ,CAACC,QAAQ,CAAC,QAAQ,CAACC,KAAK,CAAC,OAAO,CAACC,KAAK,CAAC,OAAO,CAACC,IAAI,CAAC,MAAM,CAACC,IAAI,CAAC,MAAM,CAACC,MAAM,CAAC,QAAQ,CAACC,OAAO,CAAC,SAAS,CAACC,YAAY,CAAC,cAAc,CAACC,OAAO,CAAC,SAAS,CAACC,MAAM,CAAC,QAAQ,CAACC,MAAM,CAAC,QAAQ,CAACC,OAAO,CAAC,SAAS,CAACC,QAAQ,CAAC,UAAU,CAACC,QAAQ,CAAC,UAAU,CAACC,aAAa,CAAC,GAAG,CAAC,IAAIC,MAAM,CAAC,QAAQ,CAACC,KAAK,CAAC,OAAO,CAACC,IAAI,CAAC,MAAM,CAACC,UAAU,CAAC,YAAY,CAACC,OAAO,CAAC,SAAS,CAACC,MAAM,CAAC,QAAQ,CAACC,IAAI,CAAC,MAAM,CAACC,OAAO,CAAC,SAAS,CAACC,MAAM,CAAC,QAAQ,CAACC,MAAM,CAAC,QAAQ,CAACC,EAAE,CAAC,IAAI,CAACC,SAAS,CAAC,WAAW,CAACC,QAAQ,CAAC,UAAU,CAACC,KAAK,CAAC,OAAO,CAACC,OAAO,CAAC,SAAS,CAACC,KAAK,CAAC,OAAO,CAACC,IAAI,CAAC,MAAM,CAACC,KAAK,CAAC,OAAO,CAACC,MAAM,CAAC,QAAQ,CAACC,KAAK,CAAC,OAAO,CAACC,QAAQ,CAAC,UAAU,CAACC,WAAW,CAAC,aAAa,CAACC,MAAM,CAAC,QAAQ,CAAC,IAAIC,MAAM,CAAC,QAAQ,CAACC,OAAO,CAACC,UAAU,CAAC,CAAC,IAAIC,aAAa,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAIC,EAAE,GAAGH,OAAO,CAAC,CAAC,EAAE,CAACC,UAAU,CAACE,CAAC,CAAC,EAAEF,UAAU,CAACE,CAAC,CAAC,CAACC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAACF,aAAa,CAACC,CAAC,CAAC,CAACF,UAAU,CAACE,CAAC,CAAC,CAACE,MAAM,CAACL,OAAO,CAACG,CAAC,CAAC,CAAC,CAAC,IAAI,CAACD,aAAa,CAACC,CAAC,CAAC,CAACH,OAAO,CAACG,CAAC,CAAC,CAAC,CAAC,OAAOD,aAAa,CAAC,CAACI,SAAS,CAAC,QAAQ,CAACC,GAAG,CAAC,CAAC,IAAIC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAIL,CAAC,CAAC,CAAC,CAACA,CAAC,CAACI,GAAG,CAACH,MAAM,CAACD,CAAC,EAAE,CAAC,CAACK,KAAK,CAACD,GAAG,CAACJ,CAAC,CAAC,CAACM,WAAW,CAAC,CAAC,CAAC,CAACF,GAAG,CAACJ,CAAC,CAAC,CAAC,OAAOK,KAAK,CAAC,CAACE,GAAG,CAAC,QAAQ,CAACC,IAAI,CAACC,IAAI,CAAC,CAAC,OAAO,OAAOD,IAAI,GAAGlD,QAAQ,CAACoD,QAAQ,CAACD,IAAI,CAAC,CAACE,OAAO,CAACD,QAAQ,CAACF,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAACE,QAAQ,CAAC,QAAQ,CAACE,GAAG,CAAC,CAAC,OAAOA,GAAG,CAACC,WAAW,CAAC,CAAC,CAAC,CAACC,QAAQ,CAAC,QAAQ,CAACC,OAAO,CAAC,CAAC,OAAO,OAAOA,OAAO,GAAGzD,QAAQ,CAACyD,OAAO,CAACC,OAAO,CAAC,UAAU,CAAC/D,KAAK,CAAC,CAACgE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAClE,SAAS,CAAC,CAACmE,IAAI,CAAC,QAAQ,CAACN,GAAG,CAACO,GAAG,CAAC,CAAC,EAAE,CAAC,OAAOP,GAAG,GAAGtD,QAAQ,CAAC,CAACsD,GAAG,CAACA,GAAG,CAACI,OAAO,CAAC,QAAQ,CAAC/D,KAAK,CAAC,CAAC,OAAO,OAAOkE,GAAG,GAAG/D,UAAU,CAACwD,GAAG,CAACA,GAAG,CAACQ,SAAS,CAAC,CAAC,CAAChD,aAAa,CAAC,CAAC,CAAC,CAAC,IAAIiD,SAAS,CAAC,QAAQ,CAACC,EAAE,CAACC,MAAM,CAAC,CAAC,IAAIvB,CAAC,CAAC,CAAC,CAACwB,CAAC,CAACC,CAAC,CAACC,CAAC,CAACC,CAAC,CAACC,OAAO,CAACC,KAAK,CAAC,KAAK,CAAC7B,CAAC,CAACuB,MAAM,CAACtB,MAAM,EAAE,CAAC2B,OAAO,CAAC,CAAC,IAAIE,KAAK,CAACP,MAAM,CAACvB,CAAC,CAAC,CAAC+B,KAAK,CAACR,MAAM,CAACvB,CAAC,CAAC,CAAC,CAAC,CAACwB,CAAC,CAACC,CAAC,CAAC,CAAC,CAAC,KAAK,CAACD,CAAC,CAACM,KAAK,CAAC7B,MAAM,EAAE,CAAC2B,OAAO,CAAC,CAAC,EAAE,CAAC,CAACE,KAAK,CAACN,CAAC,CAAC,CAAC,CAAC,KAAK,CAACI,OAAO,CAACE,KAAK,CAACN,CAAC,EAAE,CAAC,CAACQ,IAAI,CAACV,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAACM,OAAO,CAAC,CAAC,GAAG,CAACF,CAAC,CAAC,CAAC,CAACA,CAAC,CAACK,KAAK,CAAC9B,MAAM,CAACyB,CAAC,EAAE,CAAC,CAACG,KAAK,CAACD,OAAO,CAAC,EAAEH,CAAC,CAAC,CAACE,CAAC,CAACI,KAAK,CAACL,CAAC,CAAC,CAAC,EAAE,CAAC,OAAOC,CAAC,GAAGtE,QAAQ,EAAEsE,CAAC,CAAC1B,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC0B,CAAC,CAAC1B,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO0B,CAAC,CAAC,CAAC,CAAC,EAAExE,SAAS,CAAC,CAAC,IAAI,CAACwE,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAACM,IAAI,CAAC,IAAI,CAACJ,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAACF,CAAC,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAACA,CAAC,CAAC1B,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO0B,CAAC,CAAC,CAAC,CAAC,GAAGxE,SAAS,EAAE,CAAC,CAACwE,CAAC,CAAC,CAAC,CAAC,CAACK,IAAI,EAAEL,CAAC,CAAC,CAAC,CAAC,CAACO,IAAI,CAAC,CAAC,CAAC,IAAI,CAACP,CAAC,CAAC,CAAC,CAAC,CAAC,CAACE,KAAK,CAACF,CAAC,CAAC,CAAC,CAAC,CAACM,IAAI,CAAC,IAAI,CAACJ,KAAK,CAACF,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC5E,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC4E,CAAC,CAAC,CAAC,CAAC,CAAC,CAACE,KAAK,CAACA,KAAK,CAACb,OAAO,CAACW,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC5E,SAAS,CAAC,CAAC,KAAK,EAAE,CAAC4E,CAAC,CAAC1B,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC0B,CAAC,CAAC,CAAC,CAAC,CAAC,CAACE,KAAK,CAACF,CAAC,CAAC,CAAC,CAAC,CAACM,IAAI,CAAC,IAAI,CAACJ,KAAK,CAACb,OAAO,CAACW,CAAC,CAAC,CAAC,CAAC,CAACA,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC5E,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC4E,CAAC,CAAC,CAACE,KAAK,CAACA,KAAK,CAAC9E,SAAS,CAAC,CAAC,CAAC,CAACiD,CAAC,EAAE,CAAC,CAAC,CAAC,CAACmC,SAAS,CAAC,QAAQ,CAACvB,GAAG,CAACwB,GAAG,CAAC,CAAC,GAAG,CAAC,IAAIpC,EAAE,GAAGoC,GAAG,CAAC,CAAC,EAAE,CAAC,OAAOA,GAAG,CAACpC,CAAC,CAAC,GAAG3C,QAAQ,EAAE+E,GAAG,CAACpC,CAAC,CAAC,CAACC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,IAAIuB,CAAC,CAAC,CAAC,CAACA,CAAC,CAACY,GAAG,CAACpC,CAAC,CAAC,CAACC,MAAM,CAACuB,CAAC,EAAE,CAAC,CAAC,EAAE,CAACjB,GAAG,CAAC6B,GAAG,CAACpC,CAAC,CAAC,CAACwB,CAAC,CAAC,CAACZ,GAAG,CAAC,CAAC,CAAC,OAAOZ,CAAC,GAAG9C,OAAO,CAACH,SAAS,CAACiD,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE,CAACO,GAAG,CAAC6B,GAAG,CAACpC,CAAC,CAAC,CAACY,GAAG,CAAC,CAAC,CAAC,OAAOZ,CAAC,GAAG9C,OAAO,CAACH,SAAS,CAACiD,CAAC,CAAC,CAAC,OAAOY,GAAG,CAAC,CAAC,IAAIyB,YAAY,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAACC,iBAAiB,CAAC,CAACC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAACC,EAAE,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAACC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAACC,EAAE,CAAC,KAAK,CAAC,CAAC,IAAI7C,OAAO,CAAC,CAAC8C,OAAO,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAAC/E,OAAO,CAAC,CAACH,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAACG,OAAO,CAAC,CAACH,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,kDAAkD,CAAC,yCAAyC,CAAC,CAAC,CAACA,IAAI,CAACG,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAACA,OAAO,CAAC,CAACH,IAAI,CAACyB,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAACtB,OAAO,CAAC,CAACH,IAAI,CAACyB,KAAK,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,6DAA6D,CAAC,oDAAoD,CAAC,iCAAiC,CAAC,0BAA0B,CAAC,8LAA8L,CAAC,iCAAiC,CAAC,qBAAqB,CAAC,CAAC,CAACzB,IAAI,CAACG,OAAO,CAAC,CAAC,CAAC,mDAAmD,CAAC,CAAC,CAACA,OAAO,CAAC,CAACH,IAAI,CAAC,IAAI,CAACgB,OAAO,CAAC,CAAC,CAAC,CAAC,8BAA8B,CAAC,8BAA8B,CAAC,CAAC,CAACb,OAAO,CAAC,CAACH,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAACG,OAAO,CAAC,CAACH,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAACG,OAAO,CAAC,CAACH,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,6CAA6C,CAAC,CAAC,CAACG,OAAO,CAAC,CAACH,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAACG,OAAO,CAAC,CAACH,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAACA,IAAI,CAAC,MAAM,CAAC,YAAY,CAACgB,OAAO,CAAC,CAACb,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAACA,OAAO,CAAC,CAACH,IAAI,CAACmB,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAChB,OAAO,CAAC,CAACH,IAAI,CAACyB,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAACtB,OAAO,CAAC,CAACH,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAACG,OAAO,CAAC,CAACH,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAACG,OAAO,CAAC,CAACH,IAAI,CAACyB,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAACtB,OAAO,CAAC,CAACH,IAAI,CAAC,OAAO,CAACgB,OAAO,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAACb,OAAO,CAAC,CAACH,IAAI,CAACmB,OAAO,CAAC,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAACnB,IAAI,CAAC,MAAM,CAACgB,OAAO,CAAC,CAAC,CAAC,CAAC,qDAAqD,CAAC,CAAC,CAAC,CAAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAACgB,OAAO,CAAC,CAACb,OAAO,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAACH,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAACG,OAAO,CAAC,CAAC,CAAC,+BAA+B,CAAC,gDAAgD,CAAC,wDAAwD,CAAC,CAAC,CAACH,IAAI,CAACG,OAAO,CAAC,CAAC,CAAC,0BAA0B,CAAC,cAAc,CAAC,oBAAoB,CAAC,CAAC,CAACH,IAAI,CAAC,CAAC,CAAC,6DAA6D,CAAC,CAAC,CAAC,CAACA,IAAI,CAACgC,QAAQ,CAAC,CAAC7B,OAAO,CAAC,CAAC,CAAC,sCAAsC,CAAC,iCAAiC,CAAC,2BAA2B,CAAC,2BAA2B,CAAC,sCAAsC,CAAC,CAAC,CAACH,IAAI,CAACG,OAAO,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAACA,OAAO,CAAC,CAACH,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,4CAA4C,CAAC,CAAC,CAACG,OAAO,CAAC,CAACH,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAACG,OAAO,CAAC,CAACH,IAAI,CAACiB,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,6BAA6B,CAAC,CAAC,CAAC,CAACjB,IAAI,CAACiB,MAAM,CAAC,UAAU,CAAC,CAACd,OAAO,CAAC,CAAC,CAAC,yDAAyD,CAAC,CAAC,CAACA,OAAO,CAAC,CAACH,IAAI,CAAC,UAAU,CAACgB,OAAO,CAAC,CAAC,CAAC,CAAC,6DAA6D,CAAC,CAAC,CAAChB,IAAI,CAACG,OAAO,CAAC,CAAC,CAAC,8CAA8C,CAAC,CAAC,CAACA,OAAO,CAAC,CAACH,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,oDAAoD,CAAC,CAAC,CAACG,OAAO,CAACH,IAAI,CAAC,CAAC,CAAC,8CAA8C,CAAC,CAAC,CAACA,IAAI,CAAC,CAACG,OAAO,CAACuE,SAAS,CAACE,YAAY,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC5E,IAAI,CAACG,OAAO,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAAC,CAACH,IAAI,CAAC,UAAU,CAAC,CAACG,OAAO,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAACA,OAAO,CAAC,CAACH,IAAI,CAACmB,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC,aAAa,CAAC,kGAAkG,CAAC,8FAA8F,CAAC,uBAAuB,CAAC,0CAA0C,CAAC,uHAAuH,CAAC,sBAAsB,CAAC,oBAAoB,CAAC,CAAC,CAACnB,IAAI,CAACG,OAAO,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAACH,IAAI,CAAC,CAACG,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,CAACgF,GAAG,CAAC,CAAC,CAAC,+CAA+C,CAAC,CAAC,CAAC,CAAC/E,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,CAACA,YAAY,CAAC6C,QAAQ,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAAC7C,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,CAACA,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAAC,CAACA,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAACA,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,wCAAwC,CAAC,CAAC,CAAC,CAACA,YAAY,CAAC,MAAM,CAACZ,KAAK,CAACyD,QAAQ,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC7C,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,yHAAyH,CAAC,CAAC,CAAC,CAACA,YAAY,CAAC6C,QAAQ,CAAC,CAAC,CAAC,CAACmC,MAAM,CAAC,CAAC,CAAC,iFAAiF,CAAC,CAAC,CAACrF,KAAK,CAAC,CAACG,MAAM,CAACwB,OAAO,CAAC,CAAC,CAACzB,IAAI,CAACM,MAAM,CAAC,CAAC,CAAC,CAAC,wDAAwD,CAAC,sBAAsB,CAAC,eAAe,CAAC,CAAC,CAACR,KAAK,CAAC,CAACG,MAAM,CAACwB,OAAO,CAAC,CAAC,CAACzB,IAAI,CAACK,MAAM,CAAC,CAAC,CAAC,CAAC,0CAA0C,CAAC,CAAC,CAACP,KAAK,CAAC,CAACG,MAAM,CAACW,KAAK,CAAC,CAAC,CAACZ,IAAI,CAACK,MAAM,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC,mCAAmC,CAAC,gCAAgC,CAAC,CAAC,CAACP,KAAK,CAAC,CAACG,MAAM,CAACW,KAAK,CAAC,CAAC,CAACZ,IAAI,CAACM,MAAM,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAACR,KAAK,CAAC,CAACG,MAAM,CAACW,KAAK,CAAC,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAACd,KAAK,CAAC,CAACG,MAAM,CAACyB,KAAK,CAAC,CAAC,CAAC1B,IAAI,CAACK,MAAM,CAAC,CAAC,CAAC,CAAC,6DAA6D,CAAC,CAAC,CAACP,KAAK,CAAC,CAACG,MAAM,CAACmB,MAAM,CAAC,CAAC,CAACpB,IAAI,CAACM,MAAM,CAAC,CAAC,CAAC,CAAC,iCAAiC,CAAC,oEAAoE,CAAC,CAAC,CAACR,KAAK,CAAC,CAACG,MAAM,CAACmB,MAAM,CAAC,CAAC,CAACpB,IAAI,CAACK,MAAM,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC,wBAAwB,CAAC,sCAAsC,CAAC,gDAAgD,CAAC,uGAAuG,CAAC,CAAC,CAAC,CAACP,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAACG,MAAM,CAAC4B,MAAM,CAAC,CAAC,CAAC7B,IAAI,CAACK,MAAM,CAAC,CAAC,CAAC,CAAC,4CAA4C,CAAC,CAAC,CAAC,CAACP,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAACG,MAAM,CAAC4B,MAAM,CAAC,CAAC,CAAC7B,IAAI,CAACM,MAAM,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,iEAAiE,CAAC,CAAC,CAACR,KAAK,CAAC,CAACG,MAAM,CAAC,MAAM,CAAC,CAAC,CAACD,IAAI,CAACK,MAAM,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,kCAAkC,CAAC,CAAC,CAACP,KAAK,CAAC,CAACG,MAAM,CAAC,MAAM,CAAC,CAAC,CAACD,IAAI,CAACK,MAAM,CAAC,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAACP,KAAK,CAAC,CAACG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAACD,IAAI,CAACK,MAAM,CAAC,CAAC,CAAC,CAAC,gFAAgF,CAAC,2BAA2B,CAAC,oDAAoD,CAAC,CAAC,CAACP,KAAK,CAAC,CAACG,MAAM,CAACsB,QAAQ,CAAC,CAAC,CAACvB,IAAI,CAACK,MAAM,CAAC,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAACP,KAAK,CAAC,CAACG,MAAM,CAACsB,QAAQ,CAAC,CAAC,CAACvB,IAAI,CAACM,MAAM,CAAC,CAAC,CAAC,CAAC,+DAA+D,CAAC,CAAC,CAACR,KAAK,CAAC,CAACG,MAAM,CAACoB,EAAE,CAAC,CAAC,CAACrB,IAAI,CAACM,MAAM,CAAC,CAAC,CAAC,CAAC,qDAAqD,CAAC,mDAAmD,CAAC,sBAAsB,CAAC,CAAC,CAACR,KAAK,CAAC,CAACG,MAAM,CAACoB,EAAE,CAAC,CAAC,CAACrB,IAAI,CAACK,MAAM,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,mEAAmE,CAAC,CAAC,CAACP,KAAK,CAAC,CAACG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAACD,IAAI,CAACM,MAAM,CAAC,CAAC,CAAC,CAAC,oCAAoC,CAAC,wBAAwB,CAAC,CAAC,CAAC,CAACR,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAACG,MAAM,CAAC,OAAO,CAAC,CAAC,CAACD,IAAI,CAACK,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAACP,KAAK,CAAC,CAACG,MAAM,CAACkB,MAAM,CAAC,CAAC,CAACnB,IAAI,CAACM,MAAM,CAAC,CAAC,CAAC,CAAC,2CAA2C,CAAC,CAAC,CAACR,KAAK,CAAC,CAACG,MAAM,CAACkB,MAAM,CAAC,CAAC,CAACnB,IAAI,CAACK,MAAM,CAAC,CAAC,CAAC,CAAC,wGAAwG,CAAC,CAAC,CAACP,KAAK,CAAC,CAACG,MAAM,CAAC0B,IAAI,CAAC,CAAC,CAAC3B,IAAI,CAACK,MAAM,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,+BAA+B,CAAC,CAAC,CAAC,CAACP,KAAK,CAAC,eAAe,CAAC,CAAC,CAACG,MAAM,CAAC0B,IAAI,CAAC,CAAC,CAAC3B,IAAI,CAACM,MAAM,CAAC,CAAC,CAAC,CAAC,qCAAqC,CAAC,wCAAwC,CAAC,CAAC,CAACR,KAAK,CAAC,CAACG,MAAM,CAAC,SAAS,CAAC,CAAC,CAACD,IAAI,CAACK,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,sCAAsC,CAAC,8BAA8B,CAAC,CAAC,CAACP,KAAK,CAAC,CAACG,MAAM,CAACU,MAAM,CAAC,CAAC,CAACX,IAAI,CAACM,MAAM,CAAC,CAAC,CAAC,CAAC,+CAA+C,CAAC,CAAC,CAAC,CAACR,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC,CAACG,MAAM,CAACU,MAAM,CAAC,CAAC,CAACX,IAAI,CAACK,MAAM,CAAC,CAAC,CAAC,CAAC,8BAA8B,CAAC,CAAC,CAACP,KAAK,CAACG,MAAM,CAAC,CAACD,IAAI,CAACM,MAAM,CAAC,CAAC,CAAC,CAAC,+BAA+B,CAAC,gBAAgB,CAAC,CAAC,CAACR,KAAK,CAAC,CAACG,MAAM,CAACa,UAAU,CAAC,CAAC,CAACd,IAAI,CAACK,MAAM,CAAC,CAAC,CAAC,CAAC,mFAAmF,CAAC,CAAC,CAACP,KAAK,CAAC,CAACG,MAAM,CAACY,IAAI,CAAC,CAAC,CAACb,IAAI,CAACM,MAAM,CAAC,CAAC,CAAC,CAAC,+CAA+C,CAAC,CAAC,CAACR,KAAK,CAAC,CAACG,MAAM,CAACY,IAAI,CAAC,CAAC,CAACb,IAAI,CAACK,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAACP,KAAK,CAAC,CAACG,MAAM,CAAC,KAAK,CAAC,CAAC,CAACD,IAAI,CAACM,MAAM,CAAC,CAAC,CAAC,CAAC,0CAA0C,CAAC,mCAAmC,CAAC,+EAA+E,CAAC,CAAC,CAACL,MAAM,CAAC,CAACH,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAACE,IAAI,CAACK,MAAM,CAAC,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAACP,KAAK,CAAC,CAACG,MAAM,CAAC,MAAM,CAAC,CAAC,CAACD,IAAI,CAACM,MAAM,CAAC,CAAC,CAAC,CAAC,6BAA6B,CAAC,mBAAmB,CAAC,CAAC,CAACR,KAAK,CAAC,CAACG,MAAM,CAAC,OAAO,CAAC,CAAC,CAACD,IAAI,CAACK,MAAM,CAAC,CAAC,CAAC,CAAC,iGAAiG,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,6BAA6B,CAAC,yBAAyB,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC,CAACJ,MAAM,CAACH,KAAK,CAAC,CAACE,IAAI,CAACK,MAAM,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,uBAAuB,CAAC,sCAAsC,CAAC,sBAAsB,CAAC,2BAA2B,CAAC,gCAAgC,CAAC,iCAAiC,CAAC,6BAA6B,CAAC,+BAA+B,CAAC,iCAAiC,CAAC,CAAC,CAACJ,MAAM,CAACH,KAAK,CAAC,CAACE,IAAI,CAACM,MAAM,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAACR,KAAK,CAAC,CAACG,MAAM,CAACqB,SAAS,CAAC,CAAC,CAACtB,IAAI,CAACM,MAAM,CAAC,CAAC,CAAC,CAAC,mCAAmC,CAAC,CAAC,CAACR,KAAK,CAAC,CAACG,MAAM,CAAC,WAAW,CAAC,CAAC,CAACD,IAAI,CAACK,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAACP,KAAK,CAAC,CAACG,MAAM,CAAC,MAAM,CAAC,CAAC,CAACD,IAAI,CAACK,MAAM,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAACP,KAAK,CAAC,CAACG,MAAM,CAAC,SAAS,CAAC,CAAC,CAACD,IAAI,CAACK,MAAM,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAACP,KAAK,CAAC,CAACG,MAAM,CAAC,KAAK,CAAC,CAAC,CAACD,IAAI,CAACM,MAAM,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAACR,KAAK,CAAC,CAACG,MAAM,CAAC,MAAM,CAAC,CAAC,CAACD,IAAI,CAACM,MAAM,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAACR,KAAK,CAAC,CAACG,MAAM,CAAC,SAAS,CAAC,CAAC,CAACD,IAAI,CAACM,MAAM,CAAC,CAAC,CAAC,CAAC,6CAA6C,CAAC,CAAC,CAACR,KAAK,CAAC,CAACG,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAACD,IAAI,CAACM,MAAM,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAACR,KAAK,CAAC,CAACG,MAAM,CAAC,UAAU,CAAC,CAAC,CAACD,IAAI,CAACM,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAACR,KAAK,CAAC,CAACG,MAAM,CAAC,KAAK,CAAC,CAAC,CAACD,IAAI,CAACM,MAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAACR,KAAK,CAAC,CAACG,MAAM,CAAC,KAAK,CAAC,CAAC,CAACD,IAAI,CAACK,MAAM,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAACP,KAAK,CAAC,CAACG,MAAM,CAAC,OAAO,CAAC,CAAC,CAACD,IAAI,CAACK,MAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAACP,KAAK,CAAC,CAACG,MAAM,CAAC,OAAO,CAAC,CAAC,CAACD,IAAI,CAACM,MAAM,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAACR,KAAK,CAAC,CAACG,MAAM,CAAC,MAAM,CAAC,CAAC,CAACD,IAAI,CAACM,MAAM,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,oCAAoC,CAAC,CAAC,CAAC,CAACL,MAAM,CAAC,cAAc,CAAC,CAACH,KAAK,CAAC,CAACE,IAAI,CAACM,MAAM,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAACR,KAAK,CAAC,CAACG,MAAM,CAAC,UAAU,CAAC,CAAC,CAACD,IAAI,CAACM,MAAM,CAAC,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAACR,KAAK,CAAC,CAACG,MAAM,CAAC,UAAU,CAAC,CAAC,CAACD,IAAI,CAACM,MAAM,CAAC,CAAC,CAAC,CAAC,kDAAkD,CAAC,CAAC,CAAC,CAACL,MAAM,CAAC,OAAO,CAAC,CAACH,KAAK,CAAC,CAACE,IAAI,CAACK,MAAM,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAACJ,MAAM,CAAC,OAAO,CAAC,CAACH,KAAK,CAAC,CAACE,IAAI,CAACK,MAAM,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAACP,KAAK,CAAC,CAACG,MAAM,CAAC,WAAW,CAAC,CAAC,CAACD,IAAI,CAACK,MAAM,CAAC,CAAC,CAAC,CAAC,qCAAqC,CAAC,CAAC,CAACP,KAAK,CAAC,CAACG,MAAM,CAAC,SAAS,CAAC,CAAC,CAACD,IAAI,CAACM,MAAM,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAACR,KAAK,CAAC,CAACG,MAAM,CAAC,WAAW,CAAC,CAAC,CAACD,IAAI,CAACM,MAAM,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAACR,KAAK,CAAC,CAACG,MAAM,CAAC,OAAO,CAAC,CAAC,CAACD,IAAI,CAACM,MAAM,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAACR,KAAK,CAAC,CAACG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAACD,IAAI,CAACM,MAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAACL,MAAM,CAACH,KAAK,CAAC,CAACE,IAAI,CAACK,MAAM,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAACP,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAACG,MAAM,CAACqB,SAAS,CAAC,CAAC,CAACtB,IAAI,CAACK,MAAM,CAAC,CAAC,CAAC,CAAC,uDAAuD,CAAC,CAAC,CAACP,KAAK,CAAC,CAACG,MAAM,CAAC6B,KAAK,CAAC,CAAC,CAAC9B,IAAI,CAACM,MAAM,CAAC,CAAC,CAAC,CAAC,uCAAuC,CAAC,CAAC,CAACR,KAAK,CAAC,CAACG,MAAM,CAAC6B,KAAK,CAAC,CAAC,CAAC9B,IAAI,CAACK,MAAM,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAACJ,MAAM,CAAC,CAACD,IAAI,CAACO,OAAO,CAAC,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAACT,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAACG,MAAM,CAACwB,OAAO,CAAC,CAAC,CAACzB,IAAI,CAACO,OAAO,CAAC,CAAC,CAAC,CAAC,4DAA4D,CAAC,CAAC,CAAC,CAACN,MAAM,CAACoB,EAAE,CAAC,CAAC,CAACrB,IAAI,CAACO,OAAO,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAACN,MAAM,CAAC,CAACH,KAAK,CAACc,KAAK,CAAC,KAAK,CAAC,CAAC,CAACZ,IAAI,CAACO,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAACT,KAAK,CAACkB,MAAM,CAAC,MAAM,CAAC,CAAC,CAACf,MAAM,CAACkB,MAAM,CAAC,CAAC,CAACnB,IAAI,CAACO,OAAO,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAACT,KAAK,CAAC,CAACG,MAAM,CAACU,MAAM,CAAC,CAAC,CAACX,IAAI,CAACO,OAAO,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,qBAAqB,CAAC,CAAC,CAACT,KAAK,CAAC,CAACG,MAAM,CAACyB,KAAK,CAAC,CAAC,CAAC1B,IAAI,CAACO,OAAO,CAAC,CAAC,CAAC,CAAC,0BAA0B,CAAC,CAAC,CAACT,KAAK,CAAC,CAACG,MAAM,CAAC0B,IAAI,CAAC,CAAC,CAAC3B,IAAI,CAACO,OAAO,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAACT,KAAK,CAAC,CAACG,MAAM,CAAC4B,MAAM,CAAC,CAAC,CAAC7B,IAAI,CAACO,OAAO,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAACN,MAAM,CAACH,KAAK,CAAC,CAACE,IAAI,CAACO,OAAO,CAAC,CAAC,CAAC,CAAC,yCAAyC,CAAC,2DAA2D,CAAC,CAAC,CAAC,CAACN,MAAM,CAACuD,IAAI,CAAC,CAAC,CAAC1D,KAAK,CAAC0D,IAAI,CAAC,CAAC,CAACxD,IAAI,CAACO,OAAO,CAAC,CAAC,CAAC,CAAC,iDAAiD,CAAC,CAAC,CAAC,CAACP,IAAI,CAACO,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,4BAA4B,CAAC,CAAC,CAACN,MAAM,CAACH,KAAK,CAAC,CAACE,IAAI,CAACI,OAAO,CAAC,CAAC,CAAC,CAAC,wBAAwB,CAAC,CAAC,CAACN,KAAK,CAAC,CAACG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAACD,IAAI,CAACI,OAAO,CAAC,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAACN,KAAK,CAAC,CAACG,MAAM,CAAC0B,IAAI,CAAC,CAAC,CAAC3B,IAAI,CAACI,OAAO,CAAC,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAACN,KAAK,CAAC,CAACG,MAAM,CAACqB,SAAS,CAAC,CAAC,CAACtB,IAAI,CAACI,OAAO,CAAC,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAACH,MAAM,CAACH,KAAK,CAAC,CAACE,IAAI,CAACQ,QAAQ,CAAC,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAACV,KAAK,CAAC,CAACG,MAAM,CAACW,KAAK,CAAC,CAAC,CAACZ,IAAI,CAACQ,QAAQ,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAACV,KAAK,CAAC,CAACG,MAAM,CAACkB,MAAM,CAAC,CAAC,CAACnB,IAAI,CAACQ,QAAQ,CAAC,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAACV,KAAK,CAAC,CAACG,MAAM,CAAC6B,KAAK,CAAC,CAAC,CAAC9B,IAAI,CAACQ,QAAQ,CAAC,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAACV,KAAK,CAAC,CAACG,MAAM,CAAC8B,QAAQ,CAAC,CAAC,CAAC/B,IAAI,CAACQ,QAAQ,CAAC,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAACP,MAAM,CAAC,CAACD,IAAI,CAACS,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAACX,KAAK,CAAC,CAACG,MAAM,CAACU,MAAM,CAAC,CAAC,CAACX,IAAI,CAACS,QAAQ,CAAC,CAAC,CAAC,CAAC,yDAAyD,CAAC,CAAC,CAACX,KAAK,CAAC,CAACE,IAAI,CAACK,MAAM,CAAC,CAAC,CAAC,CAAC,6DAA6D,CAAC,CAAC,CAACP,KAAK,CAAC,CAACE,IAAI,CAACM,MAAM,CAAC,CAAC,CAAC,CAAC,8CAA8C,CAAC,CAAC,CAAC,CAACN,IAAI,CAACM,MAAM,CAAC,CAAC,CAAC,CAAC,gEAAgE,CAAC,CAAC,CAAC,CAACN,IAAI,CAACK,MAAM,CAAC,CAAC,CAAC,CAAC,gCAAgC,CAAC,CAAC,CAACP,KAAK,CAAC,CAACG,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC,CAACmF,MAAM,CAAC,CAAC,CAAC,4BAA4B,CAAC,CAAC,CAAClF,OAAO,CAAC,CAACH,IAAI,CAACkB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,2CAA2C,CAAC,CAAC,CAACf,OAAO,CAAC,CAACH,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,sBAAsB,CAAC,qEAAqE,CAAC,yBAAyB,CAAC,wCAAwC,CAAC,6BAA6B,CAAC,aAAa,CAAC,CAAC,CAACA,IAAI,CAACG,OAAO,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAACA,OAAO,CAACH,IAAI,CAAC,CAAC,CAACsF,EAAE,CAAC,CAAC,CAAC,iCAAiC,CAAC,CAAC,CAACtF,IAAI,CAACG,OAAO,CAAC,CAAC,CAAC,2BAA2B,CAAC,uDAAuD,CAAC,4CAA4C,CAAC,CAAC,CAACH,IAAI,CAAC,CAACG,OAAO,CAACuE,SAAS,CAACG,iBAAiB,CAAC,CAAC,CAAC,CAAC,oCAAoC,CAAC,CAAC,CAAC,CAAC7E,IAAI,CAAC,SAAS,CAAC,CAAC,CAACG,OAAO,CAACuE,SAAS,CAACG,iBAAiB,CAAC,CAAC,CAAC,CAAC,qDAAqD,CAAC,sBAAsB,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC1E,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAACH,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,yBAAyB,CAAC,uCAAuC,CAAC,CAAC,CAAC,CAACA,IAAI,CAACkC,MAAM,CAAC,CAAC,CAAC/B,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,gDAAgD,CAAC,CAAC,CAACA,OAAO,CAACH,IAAI,CAAC,CAAC,CAAC,8EAA8E,CAAC,6BAA6B,CAAC,8BAA8B,CAAC,gBAAgB,CAAC,CAAC,CAACA,IAAI,CAACG,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAACA,OAAO,CAAC,CAACH,IAAI,CAACe,UAAU,CAAC,CAAC,CAAC,CAAC,2DAA2D,CAAC,CAAC,CAACZ,OAAO,CAAC,CAACH,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,iFAAiF,CAAC,CAAC,CAACG,OAAO,CAAC,CAACH,IAAI,CAACmB,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,sCAAsC,CAAC,CAAC,CAAChB,OAAO,CAAC,CAACH,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,sCAAsC,CAAC,CAAC,CAACG,OAAO,CAAC,CAACH,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAACG,OAAO,CAAC,CAACH,IAAI,CAACiB,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,kCAAkC,CAAC,CAAC,CAAC,CAACjB,IAAI,CAACiC,WAAW,CAAC,CAAC9B,OAAO,CAAC,CAAC,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,0BAA0B,CAAC,kDAAkD,CAAC,0BAA0B,CAAC,uCAAuC,CAAC,wBAAwB,CAAC,2BAA2B,CAAC,6SAA6S,CAAC,0BAA0B,CAAC,mBAAmB,CAAC,4EAA4E,CAAC,gBAAgB,CAAC,CAAC,CAACH,IAAI,CAACG,OAAO,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAACH,IAAI,CAAC,SAAS,CAAC,CAACG,OAAO,CAAC,CAAC,CAAC,qCAAqC,CAAC,iCAAiC,CAAC,kEAAkE,CAAC,oBAAoB,CAAC,CAAC,CAACH,IAAI,CAACG,OAAO,CAAC,CAAC,CAAC,CAAC,IAAIoF,QAAQ,CAAC,QAAQ,CAAC1B,EAAE,CAACxB,UAAU,CAAC,CAAC,EAAE,CAAC,OAAOwB,EAAE,GAAGjE,QAAQ,CAAC,CAACyC,UAAU,CAACwB,EAAE,CAACA,EAAE,CAACvE,SAAS,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,WAAWiG,QAAQ,CAAC,CAAC,CAAC,OAAO,IAAIA,QAAQ,CAAC1B,EAAE,CAACxB,UAAU,CAAC,CAACmD,SAAS,CAAC,CAAC,CAAC,IAAIC,UAAU,CAAC,OAAOpG,MAAM,GAAGM,UAAU,EAAEN,MAAM,CAACqG,SAAS,CAACrG,MAAM,CAACqG,SAAS,CAACpG,SAAS,CAAC,IAAIqG,GAAG,CAAC9B,EAAE,EAAE,CAAC4B,UAAU,EAAEA,UAAU,CAACG,SAAS,CAACH,UAAU,CAACG,SAAS,CAACpG,KAAK,CAAC,CAAC,IAAIqG,KAAK,CAACJ,UAAU,EAAEA,UAAU,CAACK,aAAa,CAACL,UAAU,CAACK,aAAa,CAACxG,SAAS,CAAC,IAAIyG,OAAO,CAAC1D,UAAU,CAACF,MAAM,CAACC,OAAO,CAACC,UAAU,CAAC,CAACD,OAAO,CAAC,IAAI4D,UAAU,CAACP,UAAU,EAAEA,UAAU,CAACG,SAAS,EAAED,GAAG,CAAC,IAAI,CAACM,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAIC,QAAQ,CAAC,CAAC,CAAC,CAACA,QAAQ,CAAClG,IAAI,CAAC,CAACV,SAAS,CAAC4G,QAAQ,CAAC/F,OAAO,CAAC,CAACb,SAAS,CAACsE,SAAS,CAACY,IAAI,CAAC0B,QAAQ,CAACP,GAAG,CAACI,OAAO,CAACb,OAAO,CAAC,CAACgB,QAAQ,CAACpG,KAAK,CAAC,CAACuD,QAAQ,CAAC6C,QAAQ,CAAC/F,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC6F,UAAU,EAAEP,UAAU,EAAEA,UAAU,CAACU,KAAK,EAAE,OAAOV,UAAU,CAACU,KAAK,CAACC,OAAO,EAAE1G,SAAS,CAAC,CAACwG,QAAQ,CAAClG,IAAI,CAAC,CAAC,OAAO,CAAC,OAAOkG,QAAQ,CAAC,CAAC,IAAI,CAACG,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAIC,IAAI,CAAC,CAAC,CAAC,CAACA,IAAI,CAAClG,YAAY,CAAC,CAACd,SAAS,CAACsE,SAAS,CAACY,IAAI,CAAC8B,IAAI,CAACX,GAAG,CAACI,OAAO,CAACZ,GAAG,CAAC,CAAC,OAAOmB,IAAI,CAAC,CAAC,IAAI,CAACC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAIC,OAAO,CAAC,CAAC,CAAC,CAACA,OAAO,CAACtG,MAAM,CAAC,CAACZ,SAAS,CAACkH,OAAO,CAACzG,KAAK,CAAC,CAACT,SAAS,CAACkH,OAAO,CAACvG,IAAI,CAAC,CAACX,SAAS,CAACsE,SAAS,CAACY,IAAI,CAACgC,OAAO,CAACb,GAAG,CAACI,OAAO,CAACX,MAAM,CAAC,CAAC,EAAE,CAACY,UAAU,EAAE,CAACQ,OAAO,CAACvG,IAAI,CAAC,EAAE4F,KAAK,EAAEA,KAAK,CAACY,MAAM,CAAC,CAACD,OAAO,CAACvG,IAAI,CAAC,CAACK,MAAM,CAAC,EAAE,CAAC0F,UAAU,EAAEQ,OAAO,CAACzG,KAAK,CAAC,EAAE,WAAW,EAAE0F,UAAU,EAAE,OAAOA,UAAU,CAACiB,UAAU,GAAG/G,UAAU,EAAE8F,UAAU,CAACkB,cAAc,EAAElB,UAAU,CAACkB,cAAc,CAAC,CAAC,CAAC,CAACH,OAAO,CAACzG,KAAK,CAAC,CAAC,MAAM,CAACyG,OAAO,CAACvG,IAAI,CAAC,CAACM,MAAM,CAAC,OAAOiG,OAAO,CAAC,CAAC,IAAI,CAACI,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAIC,OAAO,CAAC,CAAC,CAAC,CAACA,OAAO,CAAC7G,IAAI,CAAC,CAACV,SAAS,CAACuH,OAAO,CAAC1G,OAAO,CAAC,CAACb,SAAS,CAACsE,SAAS,CAACY,IAAI,CAACqC,OAAO,CAAClB,GAAG,CAACI,OAAO,CAACV,MAAM,CAAC,CAAC,OAAOwB,OAAO,CAAC,CAAC,IAAI,CAACC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAIC,GAAG,CAAC,CAAC,CAAC,CAACA,GAAG,CAAC/G,IAAI,CAAC,CAACV,SAAS,CAACyH,GAAG,CAAC5G,OAAO,CAAC,CAACb,SAAS,CAACsE,SAAS,CAACY,IAAI,CAACuC,GAAG,CAACpB,GAAG,CAACI,OAAO,CAACT,EAAE,CAAC,CAAC,EAAE,CAACU,UAAU,EAAE,CAACe,GAAG,CAAC/G,IAAI,CAAC,EAAE6F,KAAK,EAAEA,KAAK,CAACmB,QAAQ,EAAE,SAAS,CAAC,CAACD,GAAG,CAAC/G,IAAI,CAAC,CAAC6F,KAAK,CAACmB,QAAQ,CAACzD,OAAO,CAAC,YAAY,CAACtB,WAAW,CAAC,CAACsB,OAAO,CAAC,QAAQ,CAACrB,MAAM,CAAC,CAAC,OAAO6E,GAAG,CAAC,CAAC,IAAI,CAACvB,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC3B,EAAE,CAAC,IAAI,CAACoD,KAAK,CAAC,CAAC,CAAC/B,OAAO,CAAC,IAAI,CAACe,UAAU,CAAC,CAAC,CAACZ,MAAM,CAAC,IAAI,CAACuB,SAAS,CAAC,CAAC,CAACtB,EAAE,CAAC,IAAI,CAACwB,KAAK,CAAC,CAAC,CAAC1B,MAAM,CAAC,IAAI,CAACmB,SAAS,CAAC,CAAC,CAACpB,GAAG,CAAC,IAAI,CAACkB,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAACY,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAOtB,GAAG,CAAC,CAAC,IAAI,CAACuB,KAAK,CAAC,QAAQ,CAACrD,EAAE,CAAC,CAAC8B,GAAG,CAAC,OAAO9B,EAAE,GAAGhE,QAAQ,EAAEgE,EAAE,CAACrB,MAAM,CAAC7B,aAAa,CAAC8C,IAAI,CAACI,EAAE,CAAClD,aAAa,CAAC,CAACkD,EAAE,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,CAACqD,KAAK,CAACvB,GAAG,CAAC,CAAC,OAAO,IAAI,CAAC,CAACJ,QAAQ,CAACpF,OAAO,CAACZ,UAAU,CAACgG,QAAQ,CAACvE,OAAO,CAAC0B,SAAS,CAAC,CAAC1C,IAAI,CAACG,OAAO,CAACL,KAAK,CAAC,CAAC,CAACyF,QAAQ,CAAC4B,GAAG,CAACzE,SAAS,CAAC,CAACtC,YAAY,CAAC,CAAC,CAACmF,QAAQ,CAAC6B,MAAM,CAAC1E,SAAS,CAAC,CAAC3C,KAAK,CAACG,MAAM,CAACD,IAAI,CAACI,OAAO,CAACC,MAAM,CAACE,OAAO,CAACD,MAAM,CAACE,QAAQ,CAACC,QAAQ,CAAC,CAAC,CAAC6E,QAAQ,CAAC8B,MAAM,CAAC9B,QAAQ,CAAC+B,EAAE,CAAC5E,SAAS,CAAC,CAAC1C,IAAI,CAACG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,OAAOoH,OAAO,GAAG5H,UAAU,CAAC,CAAC,EAAE,CAAC,OAAO6H,MAAM,GAAG7H,UAAU,EAAE6H,MAAM,CAACD,OAAO,CAAC,CAACA,OAAO,CAACC,MAAM,CAACD,OAAO,CAAChC,QAAQ,CAACgC,OAAO,CAAChC,QAAQ,CAACA,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,OAAOkC,MAAM,GAAG/H,SAAS,EAAE+H,MAAM,CAACC,GAAG,CAAC,CAACD,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAOlC,QAAQ,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC,OAAOlG,MAAM,GAAGM,UAAU,CAAC,CAACN,MAAM,CAACkG,QAAQ,CAACA,QAAQ,CAAC,CAAC,IAAIoC,CAAC,CAAC,OAAOtI,MAAM,GAAGM,UAAU,EAAE,CAACN,MAAM,CAACuI,MAAM,EAAEvI,MAAM,CAACwI,KAAK,CAAC,CAAC,EAAE,CAACF,CAAC,EAAE,CAACA,CAAC,CAAC9D,EAAE,CAAC,CAAC,IAAIiE,MAAM,CAAC,IAAIvC,QAAQ,CAACoC,CAAC,CAAC9D,EAAE,CAACiE,MAAM,CAACtC,SAAS,CAAC,CAAC,CAACmC,CAAC,CAAC9D,EAAE,CAACkE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAOD,MAAM,CAACb,KAAK,CAAC,CAAC,CAAC,CAACU,CAAC,CAAC9D,EAAE,CAACmE,GAAG,CAAC,QAAQ,CAACnE,EAAE,CAAC,CAACiE,MAAM,CAACZ,KAAK,CAACrD,EAAE,CAAC,CAAC,IAAIoE,MAAM,CAACH,MAAM,CAACtC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI0C,KAAK,GAAGD,MAAM,CAAC,CAACN,CAAC,CAAC9D,EAAE,CAACqE,IAAI,CAAC,CAACD,MAAM,CAACC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO7I,MAAM,GAAG,QAAQ,CAACA,MAAM,CAAC,IAAI,CAAC;CCSz7pB,SAAS8I,GAqBV,IAyMKC,EAAGC,EAAGC,EAAGC,EAzMVC,EAAI,QAEHL,EAAEK,KACNL,EAAEK,GAAK,SAASC,EAAGN,EAAGO,GACrBC,KAAKC,MAAQH,EAAGE,KAAKE,KAAO,CAAC,OAAQ,OAAQ,SAAU,cAAe,cAAe,YAAa,aAAc,kBAAmBF,KAAKG,KAAOX,EAAGQ,KAAKI,KAAOL,EAAGC,KAAKK,KAAO,GAAIL,KAAKM,KAAO,GAAI,mBAAqBN,KAAKO,eAAiBP,KAAKO,gBAAiBP,KAAKQ,YAAaR,KAAKS,eACzR,IAAIZ,EAAIG,KAAKC,MAAMS,SAASV,KAAKI,KAAKO,eACtC,OAAOX,KAAKY,cAAeZ,KAAKa,KAAKhB,GAAI,mBAAqBG,KAAKc,UAAYd,KAAKc,WAAYd,MAC9FR,EAAEK,GAAGlF,QANJ,QAMiB6E,EAAEK,GAAGkB,OAAS,GAAIvB,EAAEK,GAAGmB,SAAW,EAAGxB,EAAEK,GAAGoB,SAAW,CACzEvH,WAAY,GACZwH,QAAS,CACRC,aAAa,GAEdC,iBAAiB,GACf5B,EAAEK,GAAGwB,cAAgB,CACvBC,WAAY,CACXC,MAAO,QACPC,SAAU,WACVC,SAAU,WACVC,QAAS,UACTC,OAAQ,UAETC,OAAO,EACPC,gBAAiB,GACjBlB,cAAe,cACfmB,mBAAoB,KAClBtC,EAAEK,GAAGkC,UAAY,CACnBlB,KAAM,SAASf,GACdA,EAAIA,EAAEkC,IAAI,IAAMvC,EAAEwC,SAAUnC,EAAIE,KAAKkC,YAAYpC,GAAIE,KAAKmC,QAAQ,OAAQrC,GAAIE,KAAKmC,QAAQ,WAE5FC,OAAQ,WACPpC,KAAKmC,QAAQ,WAEdhB,YAAa,SAASrB,GACrBE,KAAKC,MAAMoC,KAAK,IAAM5C,EAAE6C,UAAU5B,WAAW6B,YAAY9C,EAAEgC,UAAW3B,EAAE0C,SAAS/C,EAAEgC,UAAWzB,KAAKmC,QAAQ,cAAerC,IAE3H2C,UAAW,SAAS3C,GACnB,IAAIC,EAAID,EAAE4C,SACV,GAAI3C,EAAE4C,SAASlD,EAAE+B,UAAW,CAC3B,IAAI3B,EAAIE,EAAE6C,QAAQ,IAAMnD,EAAEoD,WAC1B,GAAIhD,EAAEhG,OAAQ,OAAOmG,KAAKyC,UAAU5C,EAAEiD,SACtC/C,EAAEyC,SAAS/C,EAAEsD,YACP,CACN,GAAIjD,EAAE6C,SAASlD,EAAEuD,SAAU,OAC3B,IAAIpJ,EAAI4F,EAAEQ,KAAKC,OAAOS,SAAS,IAAMjB,EAAE8B,OACtC7B,EAAI9F,EAAEqJ,OAAO,IAAMxD,EAAEuD,SACtBpJ,EAAE2I,YAAY9C,EAAEyD,SAASX,YAAY9C,EAAEuD,SAAShB,IAAIlC,GAAGkC,IAAItC,GAAGsC,IAAI,IAAMvC,EAAE+B,UAAUgB,SAAS/C,EAAE0D,QAASrD,EAAE6C,SAASlD,EAAEsD,QAAUrD,EAAE8C,SAAS/C,EAAEyD,SAASX,YAAY9C,EAAEsD,QAAQR,YAAY9C,EAAEoD,YAAc/C,EAAE0C,SAAS/C,EAAEyD,SAAUxD,EAAE8C,SAAS/C,EAAEoD,YAAa/C,EAAEyC,YAAY9C,EAAE0D,QAAQX,SAAS/C,EAAEuD,SAAUI,YAAW,WAC/StD,EAAEyC,YAAY9C,EAAEoD,WAAWL,SAAS/C,EAAEsD,UACpC/C,KAAKI,KAAKyB,iBAEd7B,KAAKmC,QAAQ,YAAarC,IAE3BuD,WAAY,SAASvD,GACpB,IAAIN,EAAIM,EAAE4C,SACVlD,EAAEmD,SAASlD,EAAE+B,YAAchC,EAAE+C,YAAY9C,EAAEsD,QAAS/C,KAAKmC,QAAQ,aAAcrC,KAEhFwD,eAAgB,WACftD,KAAKC,MAAMoC,KAAK,IAAM5C,EAAE6C,UAAU5B,WAAW6B,YAAY9C,EAAEgC,UAAUwB,OAAO,IAAMxD,EAAE+B,UAAUe,YAAY9C,EAAEsD,QAC5G,IACCvD,EADOQ,KAAKC,MAAMS,SAAS,IAAMjB,EAAE8B,OAC7BuB,QACP9C,KAAKC,MAAMS,SAAS,IAAMjB,EAAE8B,OAAOS,IAAIxC,GAAG+C,YAAY9C,EAAEoD,WAAWN,YAAY9C,EAAEsD,QAAQR,YAAY9C,EAAEuD,SAAST,YAAY9C,EAAEyD,SAASV,SAAS/C,EAAE0D,QAASnD,KAAKyC,UAAUjD,IAE3K+D,YAAa,SAASzD,GACrB,IAAIN,EAAIM,EAAE4C,SACVlD,EAAEmD,SAASlD,EAAE+B,WAAaxB,KAAKR,EAAEmD,SAASlD,EAAEsD,QAAU,aAAe,aAAajD,IAEnF0D,YAAa,WACZ,OAAOxD,MAERyD,KAAM,SAAS3D,EAAGN,GACjBQ,KAAKM,KAAKR,GAAKE,KAAKM,KAAKR,IAAM,GAAIE,KAAKM,KAAKR,GAAG4D,KAAKlE,IAEtD2C,QAAS,WACR,IAAI3C,EAAIQ,KACPD,EAAI4D,MAAM5B,UAAU6B,MAAM/H,KAAKgI,WAC/BhE,EAAIE,EAAE+D,QACP,GAAI9D,KAAKM,KAAKT,GACb,IAAKC,KAAKE,KAAKM,KAAKT,GAAIG,KAAKM,KAAKT,GAAGC,GAAGiE,MAAMvE,EAAGO,IAEnDS,UAAW,WACVR,KAAKG,KAAK6D,WAAahE,KAAKI,KAAKwB,QAAU5B,KAAKC,MAAQD,KAAKC,MAAM2B,OAAM,GAAK5B,KAAKC,MAAMgE,IAAIjE,KAAKC,MAAMoC,KAAK,MAAMY,OAAO,QAAQiB,MAAK,WACtI1E,EAAEQ,MAAMmE,KAAK,KAAM1E,EAAE2E,GAAG5E,EAAEQ,MAAMmE,KAAK,YACjCnE,KAAKC,MAAMoE,WAAWH,MAAK,WAC/B,GAAK1E,EAAEQ,MAAM,GAAGsE,UAAY9E,EAAEQ,MAAMuE,YACjCvE,KAAKC,MAAMyC,SAASF,SAAS/C,EAAE+E,SACnC,IAAI1E,EAAI,CAACL,EAAEgF,MACXzE,KAAKG,KAAKiB,iBAAmBtB,EAAE4D,KAAKjE,EAAE+B,UAAWxB,KAAKG,KAAKzG,WAAasG,KAAKG,KAAKzG,WAAWG,OAAS,MAAQmG,KAAKG,KAAKzG,WAAWgL,KAAK,QAAU,GAAI1E,KAAKG,KAAKzG,YAAcoG,EAAE4D,KAAK1D,KAAKG,KAAKzG,YAAasG,KAAKC,MAAMuC,SAAS1C,EAAE4E,KAAK,OAExOxC,YAAa,SAASpC,GACrB,IAAIC,EAAIC,KACRA,KAAK2E,cAAc7E,EAAG,UAAUkC,IAAI,IAAMvC,EAAEmF,YAAYpC,SAAS/C,EAAE6C,UACnE,IAAIzC,EAAIG,KAAK2E,cAAc7E,EAAG,IAAML,EAAE6C,UAAU5B,WAChDV,KAAK6E,gBAAgBhF,EAAGG,KAAKI,KAAKkB,WAAWG,SAAU,YAAazB,KAAK6E,gBAAgBhF,EAAGG,KAAKI,KAAKkB,WAAWI,QAAS,WAAY1B,KAAK6E,gBAAgBhF,EAAGG,KAAKI,KAAKkB,WAAWK,OAAQ,UAAW3B,KAAK6E,gBAAgB7E,KAAK2E,cAAc7E,EAAG,IAAME,KAAKI,KAAKkB,WAAWC,OAAQvB,KAAKI,KAAKkB,WAAWC,MAAO,SAChT,IAAI3H,EAAI4F,IACPG,EAAIG,EAAEmE,IAAIjE,KAAK2E,cAAc7E,EAAG,IAAML,EAAE6C,UAAU5B,WAAWA,SAASV,KAAKI,KAAKO,gBAAgBqB,IAAI,IAAMvC,EAAEwC,SAC7GjC,KAAK6E,gBAAgBlF,EAAGK,KAAKI,KAAKkB,WAAWE,SAAU,YAAaxB,KAAKG,KAAKiB,iBAAmBzB,EAAE6C,SAAS/C,EAAE+B,UAAW7B,EAAEuE,MAAK,WAC/H,IAAIpE,EAAIN,EAAEQ,MACTH,EAAIC,EACLA,EAAEgF,GAAG,WAAahF,EAAEiF,KAAK,eAAiBtF,EAAE8B,MAAQ,QAAS1B,EAAIC,EAAE4C,UAAY7C,EAAE2C,SAAS/C,EAAE8B,OAC5F,IAAI7B,EAAII,EAAEqE,KAAK,MACfrE,EAAEkF,WAAW,MAAOnF,EAAEsE,KAAK,KAAMzE,GAAKK,EAAEkF,iBAAkBnF,EAAE6C,SAASlD,EAAE+B,YAAc1B,EAAEyC,YAAYxC,EAAEK,KAAKkB,WAAWE,UAAW3B,EAAEoE,IAAIpE,EAAE6C,UAAUF,SAAS/C,EAAE+B,WAC7J,IAAI7B,EAAIE,EAAEa,WAAWoC,QACpBlD,EAAIC,EAAEa,WAAWwE,OAClBvF,EAAEmF,GAAG,IAAMrF,EAAE6C,WAAa3C,EAAE6C,SAAS/C,EAAEqD,OAAQlD,EAAEkF,GAAG,IAAMrF,EAAE6C,WAAa1C,EAAE4C,SAAS/C,EAAEyF,MAAOtL,EAAIA,EAAEqK,IAAIpE,MAExG,IAAID,EAAIJ,EAAE,IAAMC,EAAE8B,MAAOvB,KAAKC,OAC9BrG,EAAEsK,MAAK,WACN,IAAIpE,EAAIN,EAAEQ,MACTD,EAAID,EAAE4C,SACN7C,EAAIE,EAAEW,SAAS,WAChB,IAAKX,EAAE+E,GAAG,IAAMrF,EAAEgF,QAAU3E,EAAEqF,KAAKzF,EAAEgD,QAAS,CAC7C,GAAI3C,EAAEoF,KAAKzF,EAAE0F,IAAKtF,GAAIA,EAAEqF,KAAKzF,EAAEgD,OAAQ3C,GAAIA,EAAE2C,SAASoC,GAAG,IAAMrF,EAAE6C,UAAW,CAC3E,IAAI1I,EAAIkG,EAAEqE,KAAK,MACdxE,EAAIH,EAAE,aAAeC,EAAE4F,KAAO,YAAczL,EAAI,mBAAqBA,EAAI,QAAQ0L,aAAazF,GAC/FA,EAAEiF,GAAG,MAAQnF,EAAE6C,SAAS/C,EAAE8F,aAE3B,IAAKxF,EAAE4C,SAASlD,EAAE+B,UAAW,CAC5B,IAAI5B,EAAIG,EAAEyF,QAAQ,IAAM/F,EAAE8B,OAC1B,GAAI3B,EAAE/F,OAAQ,CACTD,EAAIgG,EAAEuE,KAAK,MACfrE,EAAE2F,QAAQ,eAAiBhG,EAAEiG,OAAS,eAAiBjG,EAAEkG,IAAM,IAAMlG,EAAEmG,KAAO,YAAchM,EAAI,mBAAqBA,EAAI,mBAAqB6F,EAAEoG,MAAQ,KAAOhG,EAAEiG,OAAS,cAAehG,EAAE0C,SAAS/C,EAAEsG,iBAK1M,IAAIC,EAAIhG,KAAK2E,cAAc7E,EAAG,IAAML,EAAE6C,UAAU5B,SAAS,IAAMjB,EAAEgC,UAAUc,YAAY9C,EAAEgC,UAAUyD,OAAO1C,SAAS/C,EAAEgC,UACrHuE,EAAE/B,IAAI+B,EAAEC,aAAa,IAAMxG,EAAEgF,KAAM,OAAOxB,OAAO,IAAMxD,EAAE+B,UAAUgB,SAAS/C,EAAEsD,QAAQmD,MAAMlE,IAAI,IAAMvC,EAAE+B,UAAU0C,MAAK,WACtH1E,EAAEQ,MAAMiG,aAAa,IAAMxG,EAAEgF,KAAM,IAAMhF,EAAE8B,OAAOS,IAAI,IAAMvC,EAAE+B,UAAUsB,QAAQN,SAAS/C,EAAEsD,QAAQkD,aAAa,IAAMxG,EAAEgF,KAAM,IAAMhF,EAAE8B,OAAOS,IAAI,IAAMvC,EAAE+B,UAAUsB,QAAQN,SAAS/C,EAAEsD,QAAQP,SAAS/C,EAAEoD,cACtMmD,EAAEtF,SAAS,IAAMjB,EAAE8B,OAAOS,IAAI,IAAMvC,EAAE+B,UAAUgB,SAAS/C,EAAEsD,QAAQkD,aAAa,IAAMxG,EAAEgF,KAAM,IAAMhF,EAAE8B,OAAOS,IAAI,IAAMvC,EAAE+B,UAAUsB,QAAQN,SAAS/C,EAAEsD,QAAQP,SAAS/C,EAAEoD,WAC7K,IAAIsD,EAAIvG,EAAEqD,OAAO,IAAMxD,EAAEsD,QACzB,OAAOoD,EAAEtM,SAAWsM,EAAIvM,EAAEkJ,SAAUqD,EAAE3D,SAAS/C,EAAEsD,QAAQmC,OAAO1C,SAAS/C,EAAEuD,SAAUpJ,EAAEoI,IAAI,IAAMvC,EAAE+B,UAAUQ,IAAImE,EAAEjB,QAAQ1C,SAAS/C,EAAE0D,QAAQ+C,MAAME,SAASpG,KAAKC,OAAQrG,GAE3K6G,aAAc,WACb,IAAIX,EAAIE,KACRJ,EAAEyG,MAAMC,GAAG3G,EAAE4G,MAAQ,YAAa,WAAW,SAASxG,GACrD,IAAInG,EAAI4F,EAAEQ,MACTN,GAAI,EACJC,EAAIG,EAAEG,MAAMoC,KAAKzI,GAAGC,OACrB,IAAK,IAAImM,KAAKxG,EAAEK,GAAGkB,OAClB,GAAIrB,EAAIF,EAAEK,GAAGkB,OAAOiF,GAAGQ,YAAY3K,KAAKiE,EAAGlG,EAAG+F,GAAI,MACnD,IAAKD,GAAKC,EAAG,CACZ,IAAIwG,EAAIvM,EAAEuK,KAAK,QACf,GAAIgC,EAAEtM,OAAS,GAAK,KAAOsM,EAAEvC,MAAM,EAAG,GAAI,CACzC,IAAI6C,EAAIjH,EAAE2G,EAAGrG,EAAEG,OACfwG,EAAE3B,GAAG,IAAMrF,EAAE8B,SAAW7B,GAAI,EAAII,EAAElG,EAAE8I,SAASC,SAASlD,EAAE+B,UAAY,cAAgB,aAAaiF,KAGnG,GAAI/G,GAAKK,EAAE2G,kBAAmBhH,GAAKC,GAAK/F,EAAEkL,GAAG,IAAMrF,EAAE6C,SAAW,eAAiB1I,EAAEkL,GAAG,sBAAwBlL,EAAEkL,GAAG,qBAAsB,CACxIhF,EAAE6G,YAAY7G,EAAEK,KAAKe,QAAQC,YAAavH,IAAMkG,EAAEqB,YAAY3B,EAAEO,EAAE6G,QAAQlE,UAC1E,IAAImE,EAAI/G,EAAE6G,YAAY7G,EAAEK,KAAKe,QAAQwF,eAAgB9M,EAAG,KAAOuM,EAAEvC,MAAM,EAAG,IAC1EiD,GAAK9G,EAAE2G,iBAAkB5G,EAAE6G,YAAY7G,EAAEK,KAAKe,QAAQ4F,QAASlN,GAAIiN,IAAMjH,EAAEmH,MAAMvE,SAAS/C,EAAEuH,UAAWlH,EAAE6G,YAAY7G,EAAEK,KAAKe,QAAQ+F,MAAOrN,EAAGiN,IAAM/G,EAAEmH,aAIzJrG,YAAa,WACZ,IAAK,IAAId,KAAKN,EAAEK,GAAGkB,OAAQvB,EAAEK,GAAGkB,OAAOjB,GAAGmE,IAAIpI,KAAKmE,MAAOR,EAAEK,GAAGkB,OAAOjB,GAAGmE,IAAM,aAC/E,IAAK,IAAInE,KAAKN,EAAEK,GAAGkB,OAAQvB,EAAEK,GAAGkB,OAAOjB,GAAGoH,MAAMrL,KAAKmE,OAEtDmH,MAAO,WACN,IAAIrH,EAAIE,KACPD,EAAI,GACL,OAAOP,EAAE0E,KAAKlE,KAAKE,MAAM,WACxB,IAAIV,EAAIQ,KACRD,EAAEP,GAAK,WACN,IAAIK,EAAIC,EAAEN,GAAGuE,MAAMjE,EAAG+D,WACtB,YAAO,IAAsBhE,EAAIE,EAAIF,MAEnCE,GAEL4G,YAAa,SAAS7G,EAAGN,EAAGO,GAC3B,MAAO,mBAAqBD,EAAIA,EAAEjE,KAAK2D,EAAE,SAAM,IAAsBM,QAAK,IAAsBC,EAAIA,EAAID,GAEzG+E,gBAAiB,SAAS/E,EAAGN,EAAGO,GAC/B,OAAOD,EAAEmD,OAAO,IAAMzD,GAAG+C,YAAY/C,GAAGgD,SAAS/C,EAAEM,KAEpD4E,cAAe,SAAS7E,EAAGN,GAC1B,OAAOM,EAAEuC,KAAK7C,GAAGyE,IAAInE,EAAEmD,OAAOzD,KAE/B4H,kBAAmB,SAAStH,GAC3B,OAAOA,EAAEkC,IAAI,IAAMvC,EAAEiC,SAASM,IAAI,IAAMvC,EAAE0D,SAE3CkE,gBAAiB,SAASvH,EAAGN,EAAGO,GAC/B,IAAIF,GAAI,EACPjG,EAAI,WACHiG,GAAKL,EAAE3D,KAAKiE,EAAE,IAAKD,GAAI,GAEzBC,EAAEwH,IAAI3H,EAAE4H,cAAe3N,GAAIkG,EAAEwH,IAAI3H,EAAE6H,oBAAqB5N,GAAIwJ,WAAWxJ,EAAG,IAAMmG,IAEjFkF,cAAe,WACd,OAAOxF,EAAE2E,GAAG5E,EAAEK,GAAGmB,cAEhBxB,EAAEiI,GAAG5H,GAAK,SAASC,EAAGlG,GACxB,OAlND4F,EAAEK,GAAG6H,OAAS9H,EAAI,CACjB+H,MAAOnI,EAAE9I,QACTqQ,MAAOvH,EAAE,QACT6G,MAAO7G,EAAE,SACPC,EAAI,GAAIC,EAAI,GAAIC,EAAI,GAAIH,EAAE0E,KAAK,CAACzE,EAAGC,EAAGC,IAAI,SAASG,EAAGN,GACxDA,EAAEyE,IAAM,SAASnE,GAEhB,IAAK,IAAIC,KADTD,EAAIA,EAAEjF,MAAM,KACK2E,EAAEM,EAAEC,IAAMP,EAAE4E,GAAGtE,EAAEC,QAEhCN,EAAE2E,GAAK,SAAStE,GACnB,MAAO,MAAQA,GACbL,EAAEwE,IAAI,6KAA8KxE,EAAEmI,IAAM,SAAS9H,GACvM,MAAO,OAASA,EAAE8D,MAAM,EAAG,KAAO9D,EAAIA,EAAE8D,MAAM,IAAK9D,GACjDJ,EAAE0E,GAAK,SAAStE,GAClB,MAAO,MAAQA,GACbJ,EAAEuE,IAAI,cAAetE,EAAEyE,GAAK,SAAStE,GACvC,OAAOA,EAAI,OACTH,EAAEsE,IAAI,iGAA8LzE,EAAEK,GAAGgI,GAAKpI,EAAGD,EAAEK,GAAGiI,GAAKpI,EAAGF,EAAEK,GAAGkI,GAAKpI,EAAGH,EAAEK,GAAG6H,KAAO9H,GAiM7OE,EAAIN,EAAEhG,QAAO,EAAI,GAAIgG,EAAEK,GAAGoB,SAAUnB,GAAIlG,EAAI4F,EAAEhG,QAAO,EAAI,GAAIgG,EAAEK,GAAGwB,cAAezH,GAAIoG,KAAKkE,MAAK,WAC1G,IAAInE,EAAIP,EAAEQ,MACV,IAAKD,EAAEoF,KAAKtF,GAAI,CACf,IAAIJ,EAAI,IAAID,EAAEK,GAAGE,EAAGD,EAAGlG,GACvBmG,EAAEoF,KAAKtF,EAAGJ,EAAE0H,cAGZ3H,EAAEK,GAAGmI,QAAU,CACjBC,MAAO,iBAAkBvR,QAAUqG,UAAUmL,mBA5N9C,CAgOAjJ,QAOA,SAASa,GACV,IAsFID,EAAGE,EAAGnG,EAAG6F,EAtFTD,EAAI,QACPwG,EAAI,YACLlG,EAAEN,GAAGuB,OAAOiF,GAAK,CAChBkB,MAAO,WACN,GAAIlH,KAAKG,KAAK6F,GAAI,CACjB,IAAIjG,EAAIC,KAAKG,KAAK6F,GACjBpM,EAAIoG,KAAKI,KAAK4F,GACfvG,EAAIK,EAAEN,GAAGkI,KAAM1H,KAAKE,KAAOJ,EAAEqI,MAAMnI,KAAKE,KAAM,CAAC,OAAQ,QAAS,aAAc,OAASH,EAAEqI,UAAY,UAAYrI,EAAEqI,YAAcrI,EAAEsI,UAAY,SAAU,iBAAmBzO,EAAE0O,eAAiB1O,EAAE0O,aAAe,KAAO1O,EAAE2O,cAAe9I,EAAE+I,WAAa/I,EAAE+I,WAAa1I,KAAKmE,IAAIjE,KAAKC,OAAQD,KAAKK,KAAK0C,QAAS,EAC/S,IAAIpD,EAAI,CAACE,EAAE4I,WACX,QAAU1I,EAAEqI,UAAYzI,EAAE+D,KAAK7D,EAAEuE,GAAGrE,EAAEqI,WAAY,QAAUrI,EAAEsI,WAAa1I,EAAE+D,KAAK7D,EAAEuE,GAAGrE,EAAEsI,YAAarI,KAAKC,MAAMuC,SAAS7C,EAAE+E,KAAK,MAAMhC,SAASH,YAAY1C,EAAE2E,SAAUxE,KAAK0I,QAAQjJ,EAAEkJ,OAAQ3I,KAAK4I,eAAgB5I,KAAK,eAAiBgG,KAAMhG,KAAKC,MAAMrG,EAAEiP,iBAAmB,MAAMjP,EAAEkP,uBAG1R7E,IAAK,WACJpE,EAAIC,EAAEN,GAAGqI,GAAI9H,EAAID,EAAEN,GAAGsI,GAAIlO,EAAIkG,EAAEN,GAAGuI,GAAIlI,EAAEoE,IAAI,4DAA6DlE,EAAEkE,IAAI,SAAUrK,EAAEqK,IAAI,WAEjIuC,YAAa,SAAS1G,GACrB,QAAKE,KAAKG,KAAK6F,MACXxG,EAAIQ,KAAKC,MAAMkE,KAAK,QACf3E,EAAE3F,SAAWmG,KAAKI,KAAKwB,QAAUpC,EAAIK,EAAE+H,IAAIpI,IAAKM,EAAEgF,GAAG,WAAatF,EAAI,QAAeQ,KAAK+I,QAAQ,GACvGtJ,EAAEkJ,UACDnJ,EAAIC,EAAEkJ,MAAMxE,KAAK,QACT3E,EAAE3F,QAAUiG,EAAEgF,GAAG,WAAatF,EAAI,SAASQ,KAAKiH,SAAS,QAFtE,GAFA,IAGKzH,IAIJM,EAAEN,GAAGyB,SAAS+E,GAAK,CACrBoC,SAAU,OACVC,UAAW,OACXW,OAAO,EACPC,gBAAgB,GACdnJ,EAAEN,GAAG6B,cAAc2E,GAAK,CAC1BuC,aAAc,MACdD,aAAc,KACdQ,oBAAqB,OACrBD,iBAAkB,WAChB/I,EAAEN,GAAGuC,UAAUgH,KAAO,WACxB,IAAK/I,KAAKK,KAAK0C,OAAQ,CACtB,IAAIjD,EAAIE,KACRA,KAAKkJ,aAAc9F,YAAW,WAC7BtD,EAAEqJ,gBACAnJ,KAAKI,KAAKyB,iBAAkB7B,KAAKmC,QAAQ,UAE3CrC,EAAEN,GAAGuC,UAAUmH,WAAa,WAC9B,IAAIpJ,EAAIE,KACRA,KAAKoJ,iBAAkB3J,EAAEkJ,MAAMxD,KAAKpF,EAAEsJ,MAAO5J,EAAEkJ,MAAMxE,KAAK,UAAY,IAAK1E,EAAEkI,MAAMxF,QAAQvI,EAAE0P,OAAS,aAAc,EAAC,IACrH,IAAI9J,EAAI,CAACK,EAAEkD,QACX/C,KAAKG,KAAK6F,GAAGgD,OAASxJ,EAAEkE,KAAK7D,EAAEmJ,OAAQhJ,KAAKG,KAAK6F,GAAGiD,gBAAkBzJ,EAAEkE,KAAK7D,EAAE0J,YAAa,QAAUvJ,KAAKG,KAAK6F,GAAGoC,UAAY5I,EAAEkE,KAAK7D,EAAEuE,GAAGpE,KAAKG,KAAK6F,GAAGoC,WAAY,QAAUpI,KAAKG,KAAK6F,GAAGqC,WAAa7I,EAAEkE,KAAK7D,EAAEuE,GAAGpE,KAAKG,KAAK6F,GAAGqC,YAAarI,KAAKG,KAAKzG,YAAc8F,EAAEkE,KAAK1D,KAAKG,KAAKzG,YAAa+F,EAAEsH,MAAMvE,SAAShD,EAAEkF,KAAK,MAAOtB,YAAW,WAC7UtD,EAAEO,KAAK0C,QAAS,IACd/C,KAAKI,KAAKyB,iBAAkB7B,KAAKC,MAAMuC,SAAS3C,EAAEmD,QAAU,IAAMnD,EAAEkD,SACrEjD,EAAEN,GAAGuC,UAAUoH,YAAc,WAC/B,IAAIrJ,EAAIE,KACRA,KAAKqH,gBAAgB5H,EAAEkJ,OAAO,WAC7B7I,EAAEqC,QAAQ,YACRnC,KAAKI,KAAK0B,oBAAqBrC,EAAEsH,MAAMvE,SAAS3C,EAAE2J,SAAUxJ,KAAKmC,QAAQ,YAC1ErC,EAAEN,GAAGuC,UAAUkF,MAAQ,WACzB,GAAIjH,KAAKK,KAAK0C,OAAQ,CACrB,IAAIjD,EAAIE,KACRA,KAAKqH,gBAAgB5H,EAAEkJ,OAAO,WAC7B7I,EAAEG,MAAMsC,YAAY1C,EAAEmD,SAAST,YAAY1C,EAAEkD,QAAStD,EAAEsH,MAAMxE,YAAY1C,EAAEkD,QAAQR,YAAY1C,EAAEmJ,OAAOzG,YAAY1C,EAAE0J,YAAYhH,YAAY1C,EAAEuE,GAAGtE,EAAEK,KAAK6F,GAAGoC,WAAW7F,YAAY1C,EAAEuE,GAAGtE,EAAEK,KAAK6F,GAAGqC,YAAavI,EAAEK,KAAKzG,YAAc+F,EAAEsH,MAAMxE,YAAYzC,EAAEK,KAAKzG,YAAa+F,EAAEkJ,MAAMxE,KAAK,QAAS1E,EAAEkJ,MAAMxD,KAAKpF,EAAEsJ,QAASvJ,EAAEO,KAAK0C,QAAS,EAAIjD,EAAEqC,QAAQ,YACxVnC,KAAKI,KAAK0B,oBAAqBrC,EAAEsH,MAAMxE,YAAY1C,EAAE2J,SAAUxJ,KAAKmC,QAAQ,SAAUnC,KAAKmC,QAAQ,aAErGrC,EAAEN,GAAGuC,UAAUqH,eAAiB,WAClC3J,EAAE+I,UAAUxG,IAAIhC,KAAKC,OAAOiE,MAAK,WAChC,IAAI8B,EAAIlG,EAAEE,MAAMmF,KAAK3F,GACrBwG,GAAKA,EAAEiB,OAASjB,EAAEiB,YAEjBnH,EAAEN,GAAGuC,UAAU2G,QAAU,SAASlJ,GACpCA,GAAKA,EAAE3F,SAAW2F,EAAIM,EAAEE,KAAKI,KAAK4F,GAAGsC,aAAc7I,EAAE4G,QAAUxM,OAAS,IAAM2F,EAAIA,EAAEiK,QAAQ,IAAMzJ,KAAKI,KAAK4F,GAAGuC,aAAe,OAAO7F,UAAYlD,EAAE2E,KAAK,KAAM3E,EAAE2E,KAAK,OAASnE,KAAKiF,iBAAkBzF,EAAEgD,SAAS3C,EAAE6J,KAAO,IAAM7J,EAAE8J,UAAWlK,EAAEkJ,MAAQnJ,EAAGQ,KAAKmC,QAAQ,UAAW3C,IAC/QM,EAAEN,GAAGuC,UAAU,eAAiBiE,GAAK,WACvCvG,EAAEkI,MAAMiC,IAAIhQ,EAAEiQ,QAAU,cAAcvD,GAAG1M,EAAEiQ,QAAU,cAAc,SAAS/J,GAC3E,OAAOL,EAAEsH,MAAMpE,SAAS9C,EAAEkD,SAAW,GAAKjD,EAAEgK,SAAWhK,EAAE4G,kBAAkB,QAAM,KAElF,IAAI5G,EAAI,EACRL,EAAEkI,MAAMiC,IAAIhQ,EAAE0P,OAAS,cAAchD,GAAG1M,EAAE0P,OAAS,cAAc,SAAS9J,EAAGwG,GAC5E,GAAIA,GAAKvG,EAAEsH,MAAMpE,SAAS9C,EAAEkD,QAAS,CACpC,IAAIhD,EAAIN,EAAEkI,MAAMoC,UACf/D,GAAKjG,GAAKD,KAAOA,EAAIC,EAAGN,EAAEkJ,MAAMqB,IAAI,YAAajK,SAGlDD,EAAEN,GAAGuC,UAAU6G,aAAe,WAChC,IAAIpJ,EAAIQ,KACRP,EAAEwK,QAAUxK,EAAEwK,MAAQnK,EAAE,YAAcD,EAAEqK,QAAU,YAAcrK,EAAE8J,SAAW,SAAUlK,EAAEwK,MAAM7D,SAAS3G,EAAE4G,OAAOuD,IAAIhQ,EAAEuQ,WAAa,cAAgBvQ,EAAEwQ,UAAY,cAAc9D,GAAG1M,EAAEuQ,WAAa,cAAgBvQ,EAAEwQ,UAAY,cAAc,SAAStK,GACtPA,EAAE4G,iBAAkB5G,EAAEuK,kBAAmB5K,EAAEwK,MAAM9H,QAAQvI,EAAE0Q,UAAY,iBACrEV,IAAIhQ,EAAE0Q,UAAY,cAAchE,GAAG1M,EAAE0Q,UAAY,cAAc,SAASxK,GAC1EA,EAAE4G,iBAAkBjH,EAAEsH,MAAMpE,SAAS9C,EAAEmJ,SAAWxJ,EAAE4J,iBAAkB5J,EAAEyH,aApFzE,CAwFAhI;CCrSF,SAAWvI,GACP,IAAI6T,EAEAC,IAAczN,UAAUE,WAAY,YAAYnB,KAAKiB,UAAUE,UAAUxC,eACzEgQ,IAA4B1N,UAAUE,WAAY,aAAanB,KAAKiB,UAAUE,UAAUxC,eACxFiQ,IAAY3N,UAAUE,WAAY,UAAUnB,KAAKiB,UAAUE,UAAUxC,eACrEkQ,EAAoBD,EAQxBhU,EAAOkU,WAAa,CAChBF,UAAW,WACP,OAAOA,GAGXF,YAAa,WACT,OAAOA,GAGXC,0BAA2B,WACvB,OAAOA,GAGXI,UAAW,SAAUC,GACjBP,EAAoBO,GAGxBC,UAAW,WACP,OAAOR,GAGXS,gBAAiB,WAcb,OAJIL,GAAsBD,IAAaD,IACnCE,GAAoB,GAGjBM,KAAKC,UAAUX,IAG1BY,aAAc,SAAUL,GAChBP,IAAsBO,IAG1BP,EAAoBO,EA/CpBH,GAAqBF,IACrB/T,EAAO0U,SAASC,KAAO,mCAVnC,CA8DGrL;ACpGH,aAGAsL,OAASA,QAAU,GACnBA,OAAOC,QAAUD,OAAOC,SAAW,GAKnCD,OAAOC,QAAQC,sBAAwB,SAAUC,GAC7CA,EAAIhQ,MAAM,WAEV,OADeiQ,OAAOC,IAO1BL,OAAOC,QAAQK,sBAAwB,SAAUH,GAC7CI,IAAIC,EAASR,OAAOC,QAAQC,sBAAsBC,GAClDK,EAASA,EAAOjR,MAAM,KACtB,MAAMkR,EAAkB,GACxB,IAAKF,IAAIjS,EAAI,EAAGA,EAAIkS,EAAOjS,OAAQD,IAAK,CACpC,MAAMoS,EAAMF,EAAOlS,GAAGiB,MAAM,KAC5BkR,EAAgBC,EAAI,IAAMC,UAAUD,EAAI,IAE5C,OAAOD,GAOXT,OAAOC,QAAQW,mBAAqB,SAAUT,EAAKU,GAC/CA,EAAOA,EAAKvR,QAAQ,OAAQ,OAAQA,QAAQ,OAAQ,OACpD,MAEMwR,EADQ,IAAIV,OADH,SAAWS,EAAO,aAEXvQ,KAAK6P,GAC3B,OAAkB,MAAXW,EAAkB,GAAKA,EAAQ,IAE1Cd,OAAOC,QAAQc,eAAiB,SAAUC,GAEtC,MAAMb,EAAM/U,OAAO0U,SAASmB,WAC5B,OAAID,EACOhB,OAAOC,QAAQK,sBAAsBH,GAEzCH,OAAOC,QAAQC,sBAAsBC,IAEhD,MAAMe,YAAeL,GAEVb,OAAOC,QAAQW,mBAAmBxV,OAAO0U,SAASqB,KAAMN,GAE7DO,UAAY,CAACC,EAAOC,IAEftB,OAAOuB,MAAMC,WAAWJ,UAAUC,EAAOC,GAEpD,SAASG,SAASC,GACd,MAAMC,EAAcD,GAAU,KAC9B,GAAoB,OAAhBC,EACA,OAAOD,EAMX,OAAOC,EAAYrS,QAAQ,IAAI8Q,OAAO,6BAA8B,MAJpE,SAAwBwB,EAAMC,EAAIC,EAAIC,GAClC,MAAMzS,EAAU+I,MAAMyJ,EAAGvT,OAAS,GAAG6K,KAAK,KAC1C,OAAOyI,EAAGrT,OAAOc,EAASyS,MAclC,MAAMC,cAAgB,CAACC,EAAQC,UAEF,IAAdA,IACPA,GAAY,GAGXA,GAAwB,IAAVD,GAA0B,MAAVA,EAGpB,KAAXA,GAA4B,OAAXA,EACV,IAEW,iBAAXA,IACPA,EAASE,WAAWF,EAAO3S,QAAQ,gBAAiB,MAEjD2S,EAAOG,eAAe,UARlB,IAUTC,uBAA0BC,IAAMN,OAjBfC,EAiB6BK,OAfvB,KAFEJ,GAiBwB,KAd/CA,GAAY,GAGXA,GAAwB,IAAVD,GAA0B,MAAVA,EAGpB,KAAXA,GAA4B,OAAXA,EACV,IAEW,iBAAXA,IACPA,EAASE,WAAWF,EAAO3S,QAAQ,gBAAiB,MAEjD2S,EAAOG,eAAe,UARlB,GAPO,IAACH,EAAQC,GAkB/B,SAASK,eAAeC,GAEpB,GAAmB,iBAARA,EAAkB,CAEzB,OADiBA,EAAIC,QAAQ,GAGjC,OAAO,KAEX,SAASC,iBAAiBC,GAGtB,OADAA,EAAMA,EAAIrT,QAAQ,UAAW,IACzB6S,WAAWQ,GACJA,EAEJ,KAEX,SAASC,aAAaC,GAGlB,OAAa,MAATA,EACO,QAEU,iBAAVA,IACPA,EAAQC,cAAcD,IAEtBE,MAAMF,GACC,OAEJA,EAAMJ,QAAQ,GAAGnT,QAAQ,sBAAuB,QAE3D,SAAS0T,YAAYH,GAEjB,MAAMI,EAAkBL,aAAaC,GACrC,OAAIA,EAAQ,EACD,KAAOI,EAAgB3T,QAAQ,IAAK,IAAM,IAE9C,IAAM2T,EAEjB,SAASH,cAAcD,GAEnB,GAAIA,MAAAA,EACA,OAAOA,EAEXtC,IAAI2C,EAAQf,WAAWU,EAAMvT,QAAQ,WAAY,KAIjD,OAHIuT,EAAMM,WAAW,OACjBD,GAASA,GAENA,EAKX,SAASE,oBACwB/K,MAAMgL,KAAKC,SAASC,iBAAiB,6BAC7CC,SAAQ,SAAUC,GACnCA,EAAoBC,iBAAiB,YAAY,SAAUlP,GACvD,SAASmP,IACLnP,EAAEuK,kBACFvK,EAAE4G,iBAEN,MAAMwI,EAAalP,KAAKmP,UAAUC,SAAS,eAE3C,OAAgB,IAAZtP,EAAEuP,OAAevP,EAAEuP,QAAU/D,OAAOC,QAAQ+D,UAAUC,QAAUzP,EAAEuP,QAAU/D,OAAOC,QAAQ+D,UAAUE,WAAa1P,EAAEuP,QAAU/D,OAAOC,QAAQ+D,UAAUG,QAAU3P,EAAEgK,UAAYwB,OAAOC,QAAQ+D,UAAUI,KAAO5P,EAAEuP,QAAU/D,OAAOC,QAAQ+D,UAAUK,SAGnP7P,EAAEuP,QAAU/D,OAAOC,QAAQ+D,UAAUM,iBAA+B,KAAZ9P,EAAEuP,QAAiBH,KAI3EpP,EAAEuP,QAAU/D,OAAOC,QAAQ+D,UAAUM,iBAA+B,KAAZ9P,EAAEuP,QAAiB,KAAKvT,KAAKkE,KAAKmO,SAI3FrO,EAAEuP,OAAS,IAAMvP,EAAEuP,OAAS,KAP5BJ,KACO,OAYfF,EAAoBC,iBAAiB,QAAQ,WACzChP,KAAKmO,MAAQH,iBAAiBhO,KAAKmO,UAGvC,OADUY,EAAoBZ,MAAM1S,MAAM,4BAK1CsT,EAAoBZ,MAAQY,EAAoBZ,MAAMvT,QAAQ,yBAA0B,QACjF,MAGf,SAASiV,qBACLlM,MAAMgL,KAAKC,SAASC,iBAAiB,eAAeC,SAAQ,SAAU/O,GAClE,MAAM+P,EAAelB,SAASmB,cAAc,aAAahQ,EAAEiQ,OACvDF,GACAA,EAAaX,UAAUlL,IAAI,eAIvCgM,eAAeC,YAAYC,GACvBA,EAAQnB,iBAAiB,QAASiB,MAAOG,IACrCA,EAAM1J,iBACN,MAAM+E,EAAM,IAAI4E,IAAIF,EAAQG,aAAa,QAAS1B,SAAS2B,SAC3D,GAAI,IAAIF,IAAIzB,SAAS2B,SAASC,SAAW/E,EAAI+E,OACzC,MAAM,IAAIC,MAAM,mCAEpB,MAAMC,EAAiBpF,OAAOqF,IAAIC,UAAU,8DACpBtF,OAAOC,QAAQsF,kBAAkBH,EAAgB,CAAE7K,MAAOsK,EAAQW,WAAa,OAAQC,IAAK,eAAgBC,gBAAgB,IACpIjI,MAAO,EACvB,MAAMkI,QAAiBC,MAAMzF,EAAIJ,MAC3BlG,QAAa8L,EAASnL,OAC5B4K,EAAeS,UAAYhM,EAC3B,MAAMiM,EAAiBV,EAAeX,cAAc,kBACpD,IAAKqB,EACD,OAEJ,MAAM1O,EAASgO,EAAeX,cAAc,wBAC5CrN,EAAOmM,iBAAiB,UAAUC,QAASuC,GAAiB/F,OAAOqF,IAAIW,YAAYD,IAC1DD,EAAevC,iBAAiB,cACxCC,QAASyC,IACtBA,EAAgBvC,iBAAiB,QAAUwC,IAGvC,GAFAA,EAAc9K,iBACd8K,EAAcnH,kBACVkH,EAAgBpC,UAAUC,SAAS,WACnC,OAEJ,MAAMqC,EAAyB/O,EAAOqN,cAAc,iBACpD0B,EAAuBtC,UAAU5K,OAAO,UACxC+G,OAAOqF,IAAIW,YAAYG,GACvB,MAAMC,EAAuBhB,EAAeX,cAAc,SAASwB,EAAgBjB,aAAa,SAChGoB,EAAqBvC,UAAUlL,IAAI,UACnCqH,OAAOqF,IAAIgB,YAAYD,OAG/B,MAAME,EAAuBR,EAAerB,cAAc,uBAC1D6B,EAAqBzC,UAAUlL,IAAI,WACnC,MAAM4N,EAAanB,EAAeX,cAAc,SAAS6B,EAAqBtB,aAAa,SAC3FuB,EAAW1C,UAAUlL,IAAI,UACzBqH,OAAOqF,IAAIgB,YAAYE;ACzO/B,aACA,MAAMC,YACFC,YAAY5B,EAAS6B,GACjBhS,KAAKiS,SAAW,CACZC,MAAO,IACPC,UAAW,IACXC,gBAAiB,CAAC,UAAW,YAAa,YAAa,aAAc,WAAY,UAErFpS,KAAKqS,OAAQ,EACbrS,KAAKsS,WAAa,KACdC,aAAavS,KAAKwS,QAClB,MAAMC,EAAWzS,KAAKkS,MAAQlS,KAAK0S,SAC7BP,EAAYnS,KAAKmS,UAAYM,EAAWA,EAAWzS,KAAKmS,UAC9DnS,KAAKwS,OAAS9b,OAAO0M,WAAWpD,KAAK2S,aAAcR,IAEvDnS,KAAK2S,aAAe,KAChB3S,KAAK4S,eAAe,oBAChB5S,KAAK0S,SAAW1S,KAAKkS,MACrBlS,KAAKsS,cAGTtS,KAAK4S,eAAe,sBACpB5S,KAAK6S,WAET7S,KAAK8S,cAAiB1C,IACdpQ,KAAKqS,OAGU,YAAfjC,EAAM2C,MAAqC,sBAAf3C,EAAMjL,MAGtCnF,KAAKgT,cAEThT,KAAKiT,SAAW9C,EAChBnQ,KAAKiS,SAAWiB,OAAOC,OAAO,GAAInT,KAAKiS,SAAUD,GACjDhS,KAAKgT,aAETI,sBACIpT,KAAKiS,SAASG,gBAAgBtD,QAASuE,IACnCrT,KAAKiT,SAASjE,iBAAiBqE,EAAWrT,KAAK8S,iBAEnDpc,OAAOsY,iBAAiB,UAAWhP,KAAK8S,eAE5CQ,yBACItT,KAAKiS,SAASG,gBAAgBtD,QAASuE,IACnCrT,KAAKiT,SAASM,oBAAoBF,EAAWrT,KAAK8S,iBAEtDpc,OAAO6c,oBAAoB,UAAWvT,KAAK8S,eAE/CF,eAAeS,GACX,MAAMjD,EAAQ,IAAIoD,YAAYH,EAAW,CAAEI,SAAS,EAAMC,YAAY,EAAMC,OAAQ3T,OACpFA,KAAKiT,SAASW,cAAcxD,GAEhC4C,aACQhT,KAAKqS,QACLrS,KAAKqS,OAAQ,EACbrS,KAAKoT,uBAETpT,KAAK4S,eAAe,qBACpB5S,KAAK6T,WAAaC,KAAKC,MACvB/T,KAAKsS,aAETO,SACI7S,KAAKqS,OAAQ,EACbE,aAAavS,KAAKwS,QAClBxS,KAAKsT,yBAETlU,cACI,OAAOY,KAAKiT,SAEhB7T,eACI,OAAO0U,KAAKC,MAAQ/T,KAAK6T,WAE7BzU,YACI,OAAOY,KAAKiS,SAASC,MAEzB9S,gBACI,OAAOY,KAAKiS,SAASE,UAEzB/S,gBACI,OAAOY,KAAK6T;AChFpB,aAIAvI,OAAOqF,IAAIqD,gBAAgB,KAEvB,MAAMC,IAAYvd,OAAOwd,UACnBC,GAAY7I,OAAO8I,QAAQC,gBAC3BC,EAAiB5d,OAAO0U,SAASmJ,SAASC,SAAS,iBACnDC,EAAmB/d,OAAO0U,SAASmJ,SAASC,SAAS,mBACrDE,EAAUT,GAAWE,EAAW,eAAiB,4BACjDQ,EAAYrJ,OAAOC,QAAQqJ,cAAgB,iBAAmB,UAC9DC,EAAiBvJ,OAAOC,QAAQuJ,4BAChCC,EAAWzJ,OAAOC,QAAQyJ,sBAEhC,IAAKb,GAAYF,KAAac,GAAYF,GACtC,OAmBJ,GAhBAI,aAAY,WACR/D,MAAMwD,EAAS,CAAEQ,YAAa,gBACzBC,KAAMlE,GAAaA,EAASnL,QAC5BqP,KAAMrP,GACM,OAATA,EACOsP,QAAQC,QAAQvP,GAEpBsP,QAAQE,OAAOxP,IACvByP,MAAOzV,IACF2U,IAGJ/d,OAAO0U,SAASC,KAAOsJ,EAAY,kBAExC,KAECV,GAAYE,IAAaG,EACzB,OAGJ,GAAIO,GAAkBE,EAClB,OAGJ,MAAMS,EAAyB5G,SAASmB,cAAc,+BACtDlE,IAAI4J,EAAoB,iKACpBC,EAAsB,kBACtBC,EAAmB,SACnBC,EAAiB,uBACrB,GAAIJ,EAAwB,CACxB,MAAMK,EAAUL,EAAuBK,QACvCJ,EAAoBI,EAAQC,aAAeL,EAC3CC,EAAsBG,EAAQH,qBAAuBA,EACrDC,EAAmBE,EAAQF,kBAAoBA,EAC/CC,EAAiBC,EAAQE,mBAAqBH,EAElD,MAAMI,EAAgB1K,OAAOC,QAAQ0K,aAAa,CAC9CjG,GAAI,iBACJnK,MAAO+P,EACPM,QAAST,EACTU,SAAU,CACNC,OAAU,SAAUtW,GAChBA,EAAE8G,OAAOuK,UAAY,iBACrBza,OAAO0U,SAASC,KAAOsJ,GAE3B9B,OAAU,SAAU/S,GAChBpJ,OAAO2f,cAAc3f,OAAO4f,wBAC5BC,EAAYvD,eAGpBwD,QAAS,CAAC,CACF1Q,KAAM6P,EACN5C,KAAM,YACN0D,YAAa,SACbC,aAAa,GACd,CACC5Q,KAAM4P,EACNe,YAAa,SACbC,aAAa,MAInBC,EAAc/H,SAASgI,gBACvBL,EAAc,IAAIzE,YAAY6E,EAAa,CAC7CzE,MAAkC,IAA3Bxb,OAAOmgB,kBAA2B,GACzCzE,gBAAiB,CAAC,UAAW,aAC7BD,UAAW,MAwBfwE,EAAY3H,iBAAiB,qBAtBP,KAClBnD,IAAIiL,EAAU,GACd,MAAMC,EAAiCnI,SAASoI,eAAe,6BACzDC,EAAkB,KAChBF,IACAA,EAA+B5F,UAAY2F,EAAQvK,aAG3D0K,IACAjB,EAAcjN,MAAO,EAErBrS,OAAO4f,uBAAyB5f,OAAOue,aAAY,WAC/CpJ,IAAIqL,EAAgBX,EAAYrE,MAAQ,IACpCiF,EAAsBrD,KAAKC,MAAQwC,EAAYa,UACnDN,EAAUO,KAAKC,MAAMJ,EAAgBC,GAAuB,KAC5DF,IACIH,GAAW,IACXpgB,OAAO2f,cAAc3f,OAAO4f,wBAC5B5f,OAAO0U,SAASC,KAAOsJ,EAAY,gBAExC;ACvGX,SAAS4C,eAAepH,GACvB,IAIIqH,EAJAC,EAAc,0BAEdC,EAAW9I,SAASmB,cAAcI,GAClC9J,EAAQuI,SAAS+I,KAGrB,GAAiB,OAAbD,EAEH,OAAO,EAIR,IAAIE,EAAWhJ,SAASmB,cAAc,6BAOtC,GANiB,OAAb6H,IACHvR,EAAMwR,mBAAmB,YAAa,gDACtCD,EAAWhJ,SAASmB,cAAc,8BAI/B2H,EAASvI,UAAUC,SAAS,oBAAqB,CACpD,IAAI0I,EAAcJ,EAASvI,UAAUC,SAASqI,IAE9CD,EAAsB5I,SAASC,iBArBX,6BAsBIhV,QACvB8J,MAAMgL,KAAK6I,GAAqB1I,QAC9BxT,GAAMA,EAAE6T,UAAU5K,OAAOkT,IAIxBK,GAIHJ,EAASK,aAAa,cAAe,QACrCH,EAASzI,UAAU5K,OAAO,iCAC1BmT,EAASvI,UAAU5K,OAAOkT,KAM1BC,EAASK,aAAa,cAAe,SACrCH,EAASzI,UAAUlL,IAAI,iCACvByT,EAASvI,UAAUlL,IAAIwT,KAK1B,SAASO,eAAeC,GAGvB,IAAIC,EAAQD,EAAQ1L,WAAW1R,MAAM,KAarC,OAVoB,GAAhBqd,EAAMre,SACTqe,EAAM,GAAK,MAIW,GAAnBA,EAAM,GAAGre,SACZqe,EAAM,GAAKA,EAAM,GAAK,KAGvBA,EAAM,GAAKA,EAAM,GAAGtd,QAAQ,wBAAyB,KAC9C,IAAMsd,EAAMxT,KAAK;ACrEzB,IAAIyT,YAAc,CACdC,iBAAkB,SAAUrF,EAAMsF,EAAS3F,EAAUvC,GAGjD4C,EAAOG,OAAOoF,KAAKhN,OAAOiN,YAAYC,YAAYC,OAAOpW,MAAK,SAAS7C,GAAK,OAAOA,IAAMuT,EAAKtY,kBAAqB,UACnHiY,EAAWA,GAAY,IACvBpH,OAAOiN,YAAYG,KAAKL,EAAStF,EAAML,EAAUvC,IAGrDwI,iBAAkB,WAEdrN,OAAOiN,YAAYK,QAGvBC,mBAAoB,WAEhBvN,OAAOiN,YAAYK,MAAK,IAG5B1K,aAAc,SAASC,GAGnB,OAAa,MAATA,EACO,QAGS,iBAATA,IACPA,EAAQgK,YAAY/J,cAAcD,IAGlCE,MAAMF,GACC,OAGJA,EAAMJ,QAAQ,GAAGnT,QAAQ,sBAAuB,SAG3D0T,YAAa,SAASH,GAElB,IAAII,EAAkB4J,YAAYjK,aAAaC,GAC/C,OAAIA,EAAQ,EACD,KAAOI,EAAgB3T,QAAQ,IAAK,IAAM,IAG9C,IAAM2T,GAGjBH,cAAe,SAASD,GAEpB,OAAOV,WAAWU,EAAMvT,QAAQ,WAAY,MAGhDke,cAAe,WAEX,OAAOxN,OAAOuB,MAAMC,WAAWgM,cAAc/U,MAAM/D,KAAM6D;CCrDhE,SAAU7E,GACNA,IAEJA,EAAEyI,GAAGsR,cAAgB,SAAU5Y,GAC3B,IAAI7E,EAAI,GACJmE,GADQU,EAAOA,GAAQ,GACnBH,KAAKgZ,eAAe7Y,IAI5B,OAHAnB,EAAEkF,KAAKzE,GAAG,SAAU7F,EAAGmG,GACnBzE,EAAEyE,EAAEoM,MAAQpM,EAAEoO,SAEX7S,IATZ,CAYE2D;ACbF,SAASga,qBACRja,EAAE,kBACAsH,GAAG,WAAW,SAASxG,GAEH,GAQhBA,EAAEuP,OAPQ,IAOkBvP,EAAEuP,MACjCrQ,EAAEgB,MAAMmF,KAAK,aAAc,IAE3BnG,EAAEgB,MAAMmF,KAAK,aAAcnF,KAAKmO,OANW,GAUxCrO,EAAEuP,OAbQ,KAa6CvP,EAAEuP,OAZ9C,KAYqEvP,EAAEuP,OAXzE,KAWiGvP,EAAEuP,OAC/GvP,EAAE4G,oBAIHJ,GAAG,SAAS,SAASxG,GAErB,IAAIoZ,EAASla,EAAEgB,MAAMiO,MAAMrT,QAAQ,OAAQ,IAAIA,QAAQ,MAAO,IAO9D,GAJqB,GAAjBse,EAAOrf,QAAemF,EAAEgB,MAAMmF,KAAK,gBACtC+T,EAASla,EAAEgB,MAAMmF,KAAK,cAAcvK,QAAQ,OAAQ,IAAIA,QAAQ,MAAO,KAGnD,GAAjBse,EAAOrf,OAAX,CAIA,IAEIsf,EAFM,MAEOne,UAAU,EAFjB,MAEwBnB,OAASqf,EAAOrf,QAAUqf,EACxDE,EAAUD,EAAOvV,MAAM,EAAGuV,EAAOtf,OAAS,GAC1Cwf,EAAQF,EAAOvV,OAAO,GAE1B5E,EAAEgB,MAAMiO,IAAImL,EAAU,IAAMC,OAM/B,SAASC,iCACRta,EAAE,qBAAqB4K,IAAI,uBAAuBtD,GAAG,uBAAuB,WAC3E,IAAIiT,EAAQva,EAAEgB,MACVwZ,EAAsBD,EAAME,YAC5BC,EAAeH,EAAMlX,KAAK,iBAE1BmX,EAAsB,GACzBE,EAAalX,SAAS,YAElBkX,EAAa/W,SAAS,aACzB+W,EAAanX,YAAY,eAM7B,SAASoX,oBACR,IAAIC,EAAoB5a,EAAE,sBAAsBmF,KAAK,eAI/CnF,EAAE,sBAAsBiP,OAC5BjP,EAAE,gBAAgBuD,YAAY,WAQhCvD,EAAE,sBAAsB6a,OAAM,WAC7B7a,EAAEgB,MAAMmE,KAAK,cAbQ,QAcrBnF,EAAE,gBAAgBwD,SAAS,cAG5BxD,EAAE,sBAAsB8a,MAAK,WAC5B9a,EAAEgB,MAAMmE,KAAK,cAAeyV,GACvB5a,EAAEgB,MAAMiO,OACZjP,EAAE,gBAAgBuD,YAAY;CCvFjC,SAAUwX,GACT,IAAIC,EAAyB,SAASA,EAAuBC,EAAcC,GAC1E,GAA6B,UAAzBD,EAAaE,QAAjB,CAIA,GAAIna,OAAS+Z,EACZ,MAAM,IAAItJ,MAAM,mFAGjB,IAAI2J,EAAOpa,KACPmT,EAASD,OAAOC,QAAWlU,QAAUA,OAAOzF,OAEhD4gB,EAAKpI,QAAUmB,EAAO,GAAI6G,EAAuBK,eAAgBH,GACjEE,EAAKjK,QAAU8J,EACfG,EAAKE,cAAgBL,EAAaM,WAClCH,EAAKI,UAAYJ,EAAKjK,QAAQG,aAAa,SAAW,OAEtD8J,EAAKK,eAAiB7L,SAAS8L,cAAcN,EAAKpI,QAAQ2I,oBAC1DP,EAAKQ,oBAAsBhM,SAAS8L,cAAc,UAClDN,EAAKQ,oBAAoB7C,aAAa,OAAQ,UAE9CqC,EAAKpI,QAAQ6I,aAAahgB,MAAM,KAAKiU,SAAQ,SAASgM,GACrDV,EAAKK,eAAetL,UAAUlL,IAAI6W,MAGnCV,EAAKpI,QAAQ+I,kBAAkBlgB,MAAM,KAAKiU,SAAQ,SAASgM,GAC1DV,EAAKQ,oBAAoBzL,UAAUlL,IAAI6W,MAGxCV,EAAKQ,oBAAoB5L,iBAAiB,SAAS,SAASlP,GAC3Dsa,EAAKY,iBACLlb,EAAE4G,oBAGH0T,EAAKjK,QAAQnB,iBAAiB,QAAQ,WAChCoL,EAAKpI,QAAQiJ,gBAAmBb,EAAKjK,QAAQhC,OAIlDiM,EAAKY,eAAehB,EAAuBkB,MAAMC,aAGlDf,EAAKE,cAAchV,aAAa8U,EAAKK,eAAgBL,EAAKjK,SAC1DiK,EAAKK,eAAeW,YAAYhB,EAAKjK,SACrCiK,EAAKK,eAAeW,YAAYhB,EAAKQ,qBACrCR,EAAKiB,QAAQjB,EAAKpI,QAAQsJ,YAEH,aAAnBlB,EAAKI,YACRJ,EAAKI,UAAY,UAInBR,EAAuBjY,UAAUiZ,eAAiB,SAASK,GAC1D,IAAItI,EAAO/S,KAAKmQ,QAAQG,aAAa,QACjCiL,EAAcF,IAAYtI,IAAS/S,KAAKwa,UAAYR,EAAuBkB,MAAMC,SAAWnB,EAAuBkB,MAAMM,SAC7Hxb,KAAKqb,QAAQE,GACbvb,KAAKgS,QAAQyJ,eAAeF,EAAavb,OAG1Cga,EAAuBjY,UAAUsZ,QAAU,SAAStI,GACnD,IAAI2I,EAAa3I,IAASiH,EAAuBkB,MAAMC,SACnDQ,EAAYD,EAAa1b,KAAKgS,QAAQ4J,iBAAmB5b,KAAKgS,QAAQ6J,kBACtEC,EAAUJ,EAAa1b,KAAKgS,QAAQ6J,kBAAoB7b,KAAKgS,QAAQ4J,iBACrEpB,EAAYkB,EAAa,WAAa1b,KAAKwa,UAE/Cxa,KAAKmQ,QAAQ4H,aAAa,OAAQyC,GAClCxa,KAAK4a,oBAAoBzJ,UAAYuK,EAAa1b,KAAKgS,QAAQ+J,4BAA8B/b,KAAKgS,QAAQgK,2BAC1Ghc,KAAKya,eAAetL,UAAU5K,OAAOoX,GACrC3b,KAAKya,eAAetL,UAAUlL,IAAI6X,IAGnC9B,EAAuBkB,MAAQ,CAC9BC,SAAU,WACVK,QAAS,WAGVxB,EAAuBK,eAAiB,CACvCM,mBAAoB,MACpBE,aAAc,0BACdgB,kBAAmB,wCACnBD,iBAAkB,uCAClBb,kBAAmB,iCACnBgB,4BAA6BzQ,OAAO2Q,aAAaC,SAAS,+BAC1DF,2BAA4B1Q,OAAO2Q,aAAaC,SAAS,+BACzDjB,gBAAgB,EAChBK,WAAYtB,EAAuBkB,MAAMC,SACzCM,eAAgB,cAGjB1B,EAAOC,uBAAyBA,EAE5BD,EAAOoC,KACPpC,EAAOoC,GAAGC,gBAAgBC,uBAAyB,CAC/Cxb,KAAM,SAAUsP,EAASmM,GACrB,IAAInO,EAAQmO,IACZ,IAAItC,EAAuB7J,EAASgM,GAAGI,OAAOpO,OAhG3D,CAoGGzX;ACpGH,aACA,CAAEqjB,IACEA,EAAOzO,OAASyO,EAAOzO,QAAU,GACjCyO,EAAOzO,OAAO8I,QAAU2F,EAAOzO,OAAO8I,SAAW,GACjD,MAAMoI,EACFzK,YAAY0K,EAAWD,EAAiBC,SAAUtM,EAAUvB,SAASgI,iBACjE5W,KAAKyc,SAAWA,EAChBzc,KAAKmQ,QAAUA,EAEnBuM,iBACI1c,KAAKyc,SAAS3N,QAAQ,EAAE3C,EAAM1E,MAC1BoE,IAAIsC,EAAQ1G,IACS,kBAAV0G,IACPA,EAAQA,EAAQ,GAAK,MAEX,OAAVA,GACAnO,KAAKmQ,QAAQ4H,aAAa5L,EAAMgC,KAI5CwO,kBACI3c,KAAKyc,SAAS3N,QAAS8N,IACnB,MAAMzQ,EAAOyQ,EAAM,GACnB5c,KAAKmQ,QAAQ0M,gBAAgB1Q,KAGrC2Q,oBACI9c,KAAK2c,kBACL3c,KAAK0c,kBAGbF,EAAiBC,SAAW,CACxB,CAAC,0BAA2BnR,OAAOC,QAAQyJ,qBAC3C,CAAC,iCAAkC1J,OAAOC,QAAQuJ,2BAClD,CAAC,mBAAoBxJ,OAAOC,QAAQwR,eACpC,CAAC,0BAA2BzR,OAAOC,QAAQyR,qBAC3C,CAAC,eAAgB1R,OAAOC,QAAQ0R,kBAChC,CAAC,WAAY3R,OAAOC,QAAQ2R,cAC5B,CAAC,YAAa5R,OAAOC,QAAQ4R,eAC7B,CAAC,mBAAoB7R,OAAOC,QAAQqJ,aACpC,CAAC,qBAAsB,MAAQtJ,OAAO8I,QAAQC,kBAElD,MAAM+I,EAAW,IAAIZ,EACrBY,EAASV,iBACT3C,EAAOzO,OAAOkR,iBAAmBY,GA3CrC,CA4CG1mB","file":"globals.bundle.min.js","sourcesContent":["/* UAParser.js v1.0.35\n Copyright © 2012-2021 Faisal Salman \n MIT License */\n(function(window,undefined){\"use strict\";var LIBVERSION=\"1.0.35\",EMPTY=\"\",UNKNOWN=\"?\",FUNC_TYPE=\"function\",UNDEF_TYPE=\"undefined\",OBJ_TYPE=\"object\",STR_TYPE=\"string\",MAJOR=\"major\",MODEL=\"model\",NAME=\"name\",TYPE=\"type\",VENDOR=\"vendor\",VERSION=\"version\",ARCHITECTURE=\"architecture\",CONSOLE=\"console\",MOBILE=\"mobile\",TABLET=\"tablet\",SMARTTV=\"smarttv\",WEARABLE=\"wearable\",EMBEDDED=\"embedded\",UA_MAX_LENGTH=350;var AMAZON=\"Amazon\",APPLE=\"Apple\",ASUS=\"ASUS\",BLACKBERRY=\"BlackBerry\",BROWSER=\"Browser\",CHROME=\"Chrome\",EDGE=\"Edge\",FIREFOX=\"Firefox\",GOOGLE=\"Google\",HUAWEI=\"Huawei\",LG=\"LG\",MICROSOFT=\"Microsoft\",MOTOROLA=\"Motorola\",OPERA=\"Opera\",SAMSUNG=\"Samsung\",SHARP=\"Sharp\",SONY=\"Sony\",VIERA=\"Viera\",XIAOMI=\"Xiaomi\",ZEBRA=\"Zebra\",FACEBOOK=\"Facebook\",CHROMIUM_OS=\"Chromium OS\",MAC_OS=\"Mac OS\";var extend=function(regexes,extensions){var mergedRegexes={};for(var i in regexes){if(extensions[i]&&extensions[i].length%2===0){mergedRegexes[i]=extensions[i].concat(regexes[i])}else{mergedRegexes[i]=regexes[i]}}return mergedRegexes},enumerize=function(arr){var enums={};for(var i=0;i0){if(q.length===2){if(typeof q[1]==FUNC_TYPE){this[q[0]]=q[1].call(this,match)}else{this[q[0]]=q[1]}}else if(q.length===3){if(typeof q[1]===FUNC_TYPE&&!(q[1].exec&&q[1].test)){this[q[0]]=match?q[1].call(this,match,q[2]):undefined}else{this[q[0]]=match?match.replace(q[1],q[2]):undefined}}else if(q.length===4){this[q[0]]=match?q[3].call(this,match.replace(q[1],q[2])):undefined}}else{this[q]=match?match:undefined}}}}i+=2}},strMapper=function(str,map){for(var i in map){if(typeof map[i]===OBJ_TYPE&&map[i].length>0){for(var j=0;j2){_device[MODEL]=\"iPad\";_device[TYPE]=TABLET}return _device};this.getEngine=function(){var _engine={};_engine[NAME]=undefined;_engine[VERSION]=undefined;rgxMapper.call(_engine,_ua,_rgxmap.engine);return _engine};this.getOS=function(){var _os={};_os[NAME]=undefined;_os[VERSION]=undefined;rgxMapper.call(_os,_ua,_rgxmap.os);if(_isSelfNav&&!_os[NAME]&&_uach&&_uach.platform!=\"Unknown\"){_os[NAME]=_uach.platform.replace(/chrome os/i,CHROMIUM_OS).replace(/macos/i,MAC_OS)}return _os};this.getResult=function(){return{ua:this.getUA(),browser:this.getBrowser(),engine:this.getEngine(),os:this.getOS(),device:this.getDevice(),cpu:this.getCPU()}};this.getUA=function(){return _ua};this.setUA=function(ua){_ua=typeof ua===STR_TYPE&&ua.length>UA_MAX_LENGTH?trim(ua,UA_MAX_LENGTH):ua;return this};this.setUA(_ua);return this};UAParser.VERSION=LIBVERSION;UAParser.BROWSER=enumerize([NAME,VERSION,MAJOR]);UAParser.CPU=enumerize([ARCHITECTURE]);UAParser.DEVICE=enumerize([MODEL,VENDOR,TYPE,CONSOLE,MOBILE,SMARTTV,TABLET,WEARABLE,EMBEDDED]);UAParser.ENGINE=UAParser.OS=enumerize([NAME,VERSION]);if(typeof exports!==UNDEF_TYPE){if(typeof module!==UNDEF_TYPE&&module.exports){exports=module.exports=UAParser}exports.UAParser=UAParser}else{if(typeof define===FUNC_TYPE&&define.amd){define(function(){return UAParser})}else if(typeof window!==UNDEF_TYPE){window.UAParser=UAParser}}var $=typeof window!==UNDEF_TYPE&&(window.jQuery||window.Zepto);if($&&!$.ua){var parser=new UAParser;$.ua=parser.getResult();$.ua.get=function(){return parser.getUA()};$.ua.set=function(ua){parser.setUA(ua);var result=parser.getResult();for(var prop in result){$.ua[prop]=result[prop]}}}})(typeof window===\"object\"?window:this);","/*\r\n * jQuery mmenu v5.0.2\r\n * @requires jQuery 1.7.0 or later\r\n *\r\n * mmenu.frebsite.nl\r\n *\r\n * Copyright (c) Fred Heusschen\r\n * www.frebsite.nl\r\n *\r\n * Licensed under the MIT license:\r\n * http://en.wikipedia.org/wiki/MIT_License\r\n */\r\n! function(t) {\r\n\tfunction n() {\r\n\t\tt[s].glbl || (d = {\r\n\t\t\t$wndw: t(window),\r\n\t\t\t$html: t(\"html\"),\r\n\t\t\t$body: t(\"body\")\r\n\t\t}, a = {}, l = {}, r = {}, t.each([a, l, r], function(e, t) {\r\n\t\t\tt.add = function(e) {\r\n\t\t\t\te = e.split(\" \");\r\n\t\t\t\tfor (var n in e) t[e[n]] = t.mm(e[n])\r\n\t\t\t}\r\n\t\t}), a.mm = function(e) {\r\n\t\t\treturn \"mm-\" + e\r\n\t\t}, a.add(\"wrapper menu vertical panel nopanel current highest opened subopened header title btn prev next first last listview nolistview selected divider spacer hidden fullsubopen\"), a.umm = function(e) {\r\n\t\t\treturn \"mm-\" == e.slice(0, 3) && (e = e.slice(3)), e\r\n\t\t}, l.mm = function(e) {\r\n\t\t\treturn \"mm-\" + e\r\n\t\t}, l.add(\"parent sub\"), r.mm = function(e) {\r\n\t\t\treturn e + \".mm\"\r\n\t\t}, r.add(\"transitionend webkitTransitionEnd mousedown mouseup touchstart touchmove touchend click keyup\" /**** DEV-64750 - Changed keydown to keyup to unblock the tab key's default behavior ****/ ), t[s]._c = a, t[s]._d = l, t[s]._e = r, t[s].glbl = d)\r\n\t}\r\n\tvar s = \"mmenu\",\r\n\t\ti = \"5.0.2\";\r\n\tif (!t[s]) {\r\n\t\tt[s] = function(e, t, n) {\r\n\t\t\tthis.$menu = e, this._api = [\"bind\", \"init\", \"update\", \"setSelected\", \"getInstance\", \"openPanel\", \"closePanel\", \"closeAllPanels\"], this.opts = t, this.conf = n, this.vars = {}, this.cbck = {}, \"function\" == typeof this.___deprecated && this.___deprecated(), this._initMenu(), this._initAnchors();\r\n\t\t\tvar s = this.$menu.children(this.conf.panelNodetype);\r\n\t\t\treturn this._initAddons(), this.init(s), \"function\" == typeof this.___debug && this.___debug(), this\r\n\t\t}, t[s].version = i, t[s].addons = {}, t[s].uniqueId = 0, t[s].defaults = {\r\n\t\t\textensions: [],\r\n\t\t\tonClick: {\r\n\t\t\t\tsetSelected: !0\r\n\t\t\t},\r\n\t\t\tslidingSubmenus: !0\r\n\t\t}, t[s].configuration = {\r\n\t\t\tclassNames: {\r\n\t\t\t\tpanel: \"Panel\",\r\n\t\t\t\tvertical: \"Vertical\",\r\n\t\t\t\tselected: \"Selected\",\r\n\t\t\t\tdivider: \"Divider\",\r\n\t\t\t\tspacer: \"Spacer\"\r\n\t\t\t},\r\n\t\t\tclone: !1,\r\n\t\t\topeningInterval: 25,\r\n\t\t\tpanelNodetype: \"ul, ol, div\",\r\n\t\t\ttransitionDuration: 400\r\n\t\t}, t[s].prototype = {\r\n\t\t\tinit: function(e) {\r\n\t\t\t\te = e.not(\".\" + a.nopanel), e = this._initPanels(e), this.trigger(\"init\", e), this.trigger(\"update\")\r\n\t\t\t},\r\n\t\t\tupdate: function() {\r\n\t\t\t\tthis.trigger(\"update\")\r\n\t\t\t},\r\n\t\t\tsetSelected: function(e) {\r\n\t\t\t\tthis.$menu.find(\".\" + a.listview).children().removeClass(a.selected), e.addClass(a.selected), this.trigger(\"setSelected\", e)\r\n\t\t\t},\r\n\t\t\topenPanel: function(e) {\r\n\t\t\t\tvar n = e.parent();\r\n\t\t\t\tif (n.hasClass(a.vertical)) {\r\n\t\t\t\t\tvar s = n.parents(\".\" + a.subopened);\r\n\t\t\t\t\tif (s.length) return this.openPanel(s.first());\r\n\t\t\t\t\tn.addClass(a.opened)\r\n\t\t\t\t} else {\r\n\t\t\t\t\tif (e.hasClass(a.current)) return;\r\n\t\t\t\t\tvar i = t(this.$menu).children(\".\" + a.panel),\r\n\t\t\t\t\t\tl = i.filter(\".\" + a.current);\r\n\t\t\t\t\ti.removeClass(a.highest).removeClass(a.current).not(e).not(l).not(\".\" + a.vertical).addClass(a.hidden), e.hasClass(a.opened) ? l.addClass(a.highest).removeClass(a.opened).removeClass(a.subopened) : (e.addClass(a.highest), l.addClass(a.subopened)), e.removeClass(a.hidden).addClass(a.current), setTimeout(function() {\r\n\t\t\t\t\t\te.removeClass(a.subopened).addClass(a.opened)\r\n\t\t\t\t\t}, this.conf.openingInterval)\r\n\t\t\t\t}\r\n\t\t\t\tthis.trigger(\"openPanel\", e)\r\n\t\t\t},\r\n\t\t\tclosePanel: function(e) {\r\n\t\t\t\tvar t = e.parent();\r\n\t\t\t\tt.hasClass(a.vertical) && (t.removeClass(a.opened), this.trigger(\"closePanel\", e))\r\n\t\t\t},\r\n\t\t\tcloseAllPanels: function() {\r\n\t\t\t\tthis.$menu.find(\".\" + a.listview).children().removeClass(a.selected).filter(\".\" + a.vertical).removeClass(a.opened);\r\n\t\t\t\tvar e = this.$menu.children(\".\" + a.panel),\r\n\t\t\t\t\tt = e.first();\r\n\t\t\t\tthis.$menu.children(\".\" + a.panel).not(t).removeClass(a.subopened).removeClass(a.opened).removeClass(a.current).removeClass(a.highest).addClass(a.hidden), this.openPanel(t)\r\n\t\t\t},\r\n\t\t\ttogglePanel: function(e) {\r\n\t\t\t\tvar t = e.parent();\r\n\t\t\t\tt.hasClass(a.vertical) && this[t.hasClass(a.opened) ? \"closePanel\" : \"openPanel\"](e)\r\n\t\t\t},\r\n\t\t\tgetInstance: function() {\r\n\t\t\t\treturn this\r\n\t\t\t},\r\n\t\t\tbind: function(e, t) {\r\n\t\t\t\tthis.cbck[e] = this.cbck[e] || [], this.cbck[e].push(t)\r\n\t\t\t},\r\n\t\t\ttrigger: function() {\r\n\t\t\t\tvar t = this,\r\n\t\t\t\t\tn = Array.prototype.slice.call(arguments),\r\n\t\t\t\t\ts = n.shift();\r\n\t\t\t\tif (this.cbck[s])\r\n\t\t\t\t\tfor (e in this.cbck[s]) this.cbck[s][e].apply(t, n)\r\n\t\t\t},\r\n\t\t\t_initMenu: function() {\r\n\t\t\t\tthis.opts.offCanvas && this.conf.clone && (this.$menu = this.$menu.clone(!0), this.$menu.add(this.$menu.find(\"*\")).filter(\"[id]\").each(function() {\r\n\t\t\t\t\tt(this).attr(\"id\", a.mm(t(this).attr(\"id\")))\r\n\t\t\t\t})), this.$menu.contents().each(function() {\r\n\t\t\t\t\t3 == t(this)[0].nodeType && t(this).remove()\r\n\t\t\t\t}), this.$menu.parent().addClass(a.wrapper);\r\n\t\t\t\tvar e = [a.menu];\r\n\t\t\t\tthis.opts.slidingSubmenus || e.push(a.vertical), this.opts.extensions = this.opts.extensions.length ? \"mm-\" + this.opts.extensions.join(\" mm-\") : \"\", this.opts.extensions && e.push(this.opts.extensions), this.$menu.addClass(e.join(\" \"))\r\n\t\t\t},\r\n\t\t\t_initPanels: function(e) {\r\n\t\t\t\tvar n = this;\r\n\t\t\t\tthis.__findAddBack(e, \"ul, ol\").not(\".\" + a.nolistview).addClass(a.listview);\r\n\t\t\t\tvar s = this.__findAddBack(e, \".\" + a.listview).children();\r\n\t\t\t\tthis.__refactorClass(s, this.conf.classNames.selected, \"selected\"), this.__refactorClass(s, this.conf.classNames.divider, \"divider\"), this.__refactorClass(s, this.conf.classNames.spacer, \"spacer\"), this.__refactorClass(this.__findAddBack(e, \".\" + this.conf.classNames.panel), this.conf.classNames.panel, \"panel\");\r\n\t\t\t\tvar i = t(),\r\n\t\t\t\t\tr = e.add(this.__findAddBack(e, \".\" + a.listview).children().children(this.conf.panelNodetype)).not(\".\" + a.nopanel);\r\n\t\t\t\tthis.__refactorClass(r, this.conf.classNames.vertical, \"vertical\"), this.opts.slidingSubmenus || r.addClass(a.vertical), r.each(function() {\r\n\t\t\t\t\tvar e = t(this),\r\n\t\t\t\t\t\ts = e;\r\n\t\t\t\t\te.is(\"ul, ol\") ? (e.wrap('
'), s = e.parent()) : s.addClass(a.panel);\r\n\t\t\t\t\tvar l = e.attr(\"id\");\r\n\t\t\t\t\te.removeAttr(\"id\"), s.attr(\"id\", l || n.__getUniqueId()), e.hasClass(a.vertical) && (e.removeClass(n.conf.classNames.vertical), s.add(s.parent()).addClass(a.vertical));\r\n\t\t\t\t\tvar r = s.children().first(),\r\n\t\t\t\t\t\td = s.children().last();\r\n\t\t\t\t\tr.is(\".\" + a.listview) && r.addClass(a.first), d.is(\".\" + a.listview) && d.addClass(a.last), i = i.add(s)\r\n\t\t\t\t});\r\n\t\t\t\tvar d = t(\".\" + a.panel, this.$menu);\r\n\t\t\t\ti.each(function() {\r\n\t\t\t\t\tvar e = t(this),\r\n\t\t\t\t\t\tn = e.parent(),\r\n\t\t\t\t\t\ts = n.children(\"a, span\");\r\n\t\t\t\t\tif (!n.is(\".\" + a.menu) && !e.data(l.parent)) {\r\n\t\t\t\t\t\tif (n.data(l.sub, e), e.data(l.parent, n), n.parent().is(\".\" + a.listview)) {\r\n\t\t\t\t\t\t\tvar i = e.attr(\"id\"),\r\n\t\t\t\t\t\t\t\tr = t('').insertBefore(s);\r\n\t\t\t\t\t\t\ts.is(\"a\") || r.addClass(a.fullsubopen)\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t\tif (!n.hasClass(a.vertical)) {\r\n\t\t\t\t\t\t\tvar d = n.closest(\".\" + a.panel);\r\n\t\t\t\t\t\t\tif (d.length) {\r\n\t\t\t\t\t\t\t\tvar i = d.attr(\"id\");\r\n\t\t\t\t\t\t\t\te.prepend('\"), e.addClass(a.hasheader)\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t});\r\n\t\t\t\tvar o = this.__findAddBack(e, \".\" + a.listview).children(\".\" + a.selected).removeClass(a.selected).last().addClass(a.selected);\r\n\t\t\t\to.add(o.parentsUntil(\".\" + a.menu, \"li\")).filter(\".\" + a.vertical).addClass(a.opened).end().not(\".\" + a.vertical).each(function() {\r\n\t\t\t\t\tt(this).parentsUntil(\".\" + a.menu, \".\" + a.panel).not(\".\" + a.vertical).first().addClass(a.opened).parentsUntil(\".\" + a.menu, \".\" + a.panel).not(\".\" + a.vertical).first().addClass(a.opened).addClass(a.subopened)\r\n\t\t\t\t}), o.children(\".\" + a.panel).not(\".\" + a.vertical).addClass(a.opened).parentsUntil(\".\" + a.menu, \".\" + a.panel).not(\".\" + a.vertical).first().addClass(a.opened).addClass(a.subopened);\r\n\t\t\t\tvar c = d.filter(\".\" + a.opened);\r\n\t\t\t\treturn c.length || (c = i.first()), c.addClass(a.opened).last().addClass(a.current), i.not(\".\" + a.vertical).not(c.last()).addClass(a.hidden).end().appendTo(this.$menu), i\r\n\t\t\t},\r\n\t\t\t_initAnchors: function() {\r\n\t\t\t\tvar e = this;\r\n\t\t\t\td.$body.on(r.click + \"-oncanvas\", \"a[href]\", function(n) {\r\n\t\t\t\t\tvar i = t(this),\r\n\t\t\t\t\t\tl = !1,\r\n\t\t\t\t\t\tr = e.$menu.find(i).length;\r\n\t\t\t\t\tfor (var o in t[s].addons)\r\n\t\t\t\t\t\tif (l = t[s].addons[o].clickAnchor.call(e, i, r)) break;\r\n\t\t\t\t\tif (!l && r) {\r\n\t\t\t\t\t\tvar c = i.attr(\"href\");\r\n\t\t\t\t\t\tif (c.length > 1 && \"#\" == c.slice(0, 1)) {\r\n\t\t\t\t\t\t\tvar h = t(c, e.$menu);\r\n\t\t\t\t\t\t\th.is(\".\" + a.panel) && (l = !0, e[i.parent().hasClass(a.vertical) ? \"togglePanel\" : \"openPanel\"](h))\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif (l && n.preventDefault(), !l && r && i.is(\".\" + a.listview + \" > li > a\") && !i.is('[rel=\"external\"]') && !i.is('[target=\"_blank\"]')) {\r\n\t\t\t\t\t\te.__valueOrFn(e.opts.onClick.setSelected, i) && e.setSelected(t(n.target).parent());\r\n\t\t\t\t\t\tvar u = e.__valueOrFn(e.opts.onClick.preventDefault, i, \"#\" == c.slice(0, 1));\r\n\t\t\t\t\t\tu && n.preventDefault(), e.__valueOrFn(e.opts.onClick.blockUI, i, !u) && d.$html.addClass(a.blocking), e.__valueOrFn(e.opts.onClick.close, i, u) && e.close()\r\n\t\t\t\t\t}\r\n\t\t\t\t})\r\n\t\t\t},\r\n\t\t\t_initAddons: function() {\r\n\t\t\t\tfor (var e in t[s].addons) t[s].addons[e].add.call(this), t[s].addons[e].add = function() {};\r\n\t\t\t\tfor (var e in t[s].addons) t[s].addons[e].setup.call(this)\r\n\t\t\t},\r\n\t\t\t__api: function() {\r\n\t\t\t\tvar e = this,\r\n\t\t\t\t\tn = {};\r\n\t\t\t\treturn t.each(this._api, function() {\r\n\t\t\t\t\tvar t = this;\r\n\t\t\t\t\tn[t] = function() {\r\n\t\t\t\t\t\tvar s = e[t].apply(e, arguments);\r\n\t\t\t\t\t\treturn \"undefined\" == typeof s ? n : s\r\n\t\t\t\t\t}\r\n\t\t\t\t}), n\r\n\t\t\t},\r\n\t\t\t__valueOrFn: function(e, t, n) {\r\n\t\t\t\treturn \"function\" == typeof e ? e.call(t[0]) : \"undefined\" == typeof e && \"undefined\" != typeof n ? n : e\r\n\t\t\t},\r\n\t\t\t__refactorClass: function(e, t, n) {\r\n\t\t\t\treturn e.filter(\".\" + t).removeClass(t).addClass(a[n])\r\n\t\t\t},\r\n\t\t\t__findAddBack: function(e, t) {\r\n\t\t\t\treturn e.find(t).add(e.filter(t))\r\n\t\t\t},\r\n\t\t\t__filterListItems: function(e) {\r\n\t\t\t\treturn e.not(\".\" + a.divider).not(\".\" + a.hidden)\r\n\t\t\t},\r\n\t\t\t__transitionend: function(e, t, n) {\r\n\t\t\t\tvar s = !1,\r\n\t\t\t\t\ti = function() {\r\n\t\t\t\t\t\ts || t.call(e[0]), s = !0\r\n\t\t\t\t\t};\r\n\t\t\t\te.one(r.transitionend, i), e.one(r.webkitTransitionEnd, i), setTimeout(i, 1.1 * n)\r\n\t\t\t},\r\n\t\t\t__getUniqueId: function() {\r\n\t\t\t\treturn a.mm(t[s].uniqueId++)\r\n\t\t\t}\r\n\t\t}, t.fn[s] = function(e, i) {\r\n\t\t\treturn n(), e = t.extend(!0, {}, t[s].defaults, e), i = t.extend(!0, {}, t[s].configuration, i), this.each(function() {\r\n\t\t\t\tvar n = t(this);\r\n\t\t\t\tif (!n.data(s)) {\r\n\t\t\t\t\tvar a = new t[s](n, e, i);\r\n\t\t\t\t\tn.data(s, a.__api())\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t}, t[s].support = {\r\n\t\t\ttouch: \"ontouchstart\" in window || navigator.msMaxTouchPoints\r\n\t\t};\r\n\t\tvar a, l, r, d\r\n\t}\r\n}(jQuery);\r\n/*\r\n * jQuery mmenu offCanvas addon\r\n * mmenu.frebsite.nl\r\n *\r\n * Copyright (c) Fred Heusschen\r\n */\r\n! function(e) {\r\n\tvar t = \"mmenu\",\r\n\t\to = \"offCanvas\";\r\n\te[t].addons[o] = {\r\n\t\tsetup: function() {\r\n\t\t\tif (this.opts[o]) {\r\n\t\t\t\tvar n = this.opts[o],\r\n\t\t\t\t\ti = this.conf[o];\r\n\t\t\t\ta = e[t].glbl, this._api = e.merge(this._api, [\"open\", \"close\", \"setPage\"]), (\"top\" == n.position || \"bottom\" == n.position) && (n.zposition = \"front\"), \"string\" != typeof i.pageSelector && (i.pageSelector = \"> \" + i.pageNodetype), a.$allMenus = (a.$allMenus || e()).add(this.$menu), this.vars.opened = !1;\r\n\t\t\t\tvar r = [s.offcanvas];\r\n\t\t\t\t\"left\" != n.position && r.push(s.mm(n.position)), \"back\" != n.zposition && r.push(s.mm(n.zposition)), this.$menu.addClass(r.join(\" \")).parent().removeClass(s.wrapper), this.setPage(a.$page), this._initBlocker(), this[\"_initWindow_\" + o](), this.$menu[i.menuInjectMethod + \"To\"](i.menuWrapperSelector)\r\n\t\t\t}\r\n\t\t},\r\n\t\tadd: function() {\r\n\t\t\ts = e[t]._c, n = e[t]._d, i = e[t]._e, s.add(\"offcanvas slideout modal background opening blocker page\"), n.add(\"style\"), i.add(\"resize\")\r\n\t\t},\r\n\t\tclickAnchor: function(e) {\r\n\t\t\tif (!this.opts[o]) return !1;\r\n\t\t\tvar t = this.$menu.attr(\"id\");\r\n\t\t\tif (t && t.length && (this.conf.clone && (t = s.umm(t)), e.is('[href=\"#' + t + '\"]'))) return this.open(), !0;\r\n\t\t\tif (a.$page) {\r\n\t\t\t\tvar t = a.$page.attr(\"id\");\r\n\t\t\t\treturn t && t.length && e.is('[href=\"#' + t + '\"]') ? (this.close(), !0) : !1\r\n\t\t\t}\r\n\t\t}\r\n\t}, e[t].defaults[o] = {\r\n\t\tposition: \"left\",\r\n\t\tzposition: \"back\",\r\n\t\tmodal: !1,\r\n\t\tmoveBackground: !0\r\n\t}, e[t].configuration[o] = {\r\n\t\tpageNodetype: \"div\",\r\n\t\tpageSelector: null,\r\n\t\tmenuWrapperSelector: \"body\",\r\n\t\tmenuInjectMethod: \"prepend\"\r\n\t}, e[t].prototype.open = function() {\r\n\t\tif (!this.vars.opened) {\r\n\t\t\tvar e = this;\r\n\t\t\tthis._openSetup(), setTimeout(function() {\r\n\t\t\t\te._openFinish()\r\n\t\t\t}, this.conf.openingInterval), this.trigger(\"open\")\r\n\t\t}\r\n\t}, e[t].prototype._openSetup = function() {\r\n\t\tvar e = this;\r\n\t\tthis.closeAllOthers(), a.$page.data(n.style, a.$page.attr(\"style\") || \"\"), a.$wndw.trigger(i.resize + \"-offcanvas\", [!0]);\r\n\t\tvar t = [s.opened];\r\n\t\tthis.opts[o].modal && t.push(s.modal), this.opts[o].moveBackground && t.push(s.background), \"left\" != this.opts[o].position && t.push(s.mm(this.opts[o].position)), \"back\" != this.opts[o].zposition && t.push(s.mm(this.opts[o].zposition)), this.opts.extensions && t.push(this.opts.extensions), a.$html.addClass(t.join(\" \")), setTimeout(function() {\r\n\t\t\te.vars.opened = !0\r\n\t\t}, this.conf.openingInterval), this.$menu.addClass(s.current + \" \" + s.opened)\r\n\t}, e[t].prototype._openFinish = function() {\r\n\t\tvar e = this;\r\n\t\tthis.__transitionend(a.$page, function() {\r\n\t\t\te.trigger(\"opened\")\r\n\t\t}, this.conf.transitionDuration), a.$html.addClass(s.opening), this.trigger(\"opening\")\r\n\t}, e[t].prototype.close = function() {\r\n\t\tif (this.vars.opened) {\r\n\t\t\tvar e = this;\r\n\t\t\tthis.__transitionend(a.$page, function() {\r\n\t\t\t\te.$menu.removeClass(s.current).removeClass(s.opened), a.$html.removeClass(s.opened).removeClass(s.modal).removeClass(s.background).removeClass(s.mm(e.opts[o].position)).removeClass(s.mm(e.opts[o].zposition)), e.opts.extensions && a.$html.removeClass(e.opts.extensions), a.$page.attr(\"style\", a.$page.data(n.style)), e.vars.opened = !1, e.trigger(\"closed\")\r\n\t\t\t}, this.conf.transitionDuration), a.$html.removeClass(s.opening), this.trigger(\"close\"), this.trigger(\"closing\")\r\n\t\t}\r\n\t}, e[t].prototype.closeAllOthers = function() {\r\n\t\ta.$allMenus.not(this.$menu).each(function() {\r\n\t\t\tvar o = e(this).data(t);\r\n\t\t\to && o.close && o.close()\r\n\t\t})\r\n\t}, e[t].prototype.setPage = function(t) {\r\n\t\tt && t.length || (t = e(this.conf[o].pageSelector, a.$body), t.length > 1 && (t = t.wrapAll(\"<\" + this.conf[o].pageNodetype + \" />\").parent())), t.attr(\"id\", t.attr(\"id\") || this.__getUniqueId()), t.addClass(s.page + \" \" + s.slideout), a.$page = t, this.trigger(\"setPage\", t)\r\n\t}, e[t].prototype[\"_initWindow_\" + o] = function() {\r\n\t\ta.$wndw.off(i.keydown + \"-offcanvas\").on(i.keydown + \"-offcanvas\", function(e) {\r\n\t\t\treturn a.$html.hasClass(s.opened) && 9 == e.keyCode ? (e.preventDefault(), !1) : void 0\r\n\t\t});\r\n\t\tvar e = 0;\r\n\t\ta.$wndw.off(i.resize + \"-offcanvas\").on(i.resize + \"-offcanvas\", function(t, o) {\r\n\t\t\tif (o || a.$html.hasClass(s.opened)) {\r\n\t\t\t\tvar n = a.$wndw.height();\r\n\t\t\t\t(o || n != e) && (e = n, a.$page.css(\"minHeight\", n))\r\n\t\t\t}\r\n\t\t})\r\n\t}, e[t].prototype._initBlocker = function() {\r\n\t\tvar t = this;\r\n\t\ta.$blck || (a.$blck = e('
')), a.$blck.appendTo(a.$body).off(i.touchstart + \"-offcanvas \" + i.touchmove + \"-offcanvas\").on(i.touchstart + \"-offcanvas \" + i.touchmove + \"-offcanvas\", function(e) {\r\n\t\t\te.preventDefault(), e.stopPropagation(), a.$blck.trigger(i.mousedown + \"-offcanvas\")\r\n\t\t}).off(i.mousedown + \"-offcanvas\").on(i.mousedown + \"-offcanvas\", function(e) {\r\n\t\t\te.preventDefault(), a.$html.hasClass(s.modal) || (t.closeAllOthers(), t.close())\r\n\t\t})\r\n\t};\r\n\tvar s, n, i, a\r\n}(jQuery);\r\n","/*\r\n * Each mobile view should have the following in the BodyScripts section:\r\n * \r\n * @section BodyScripts {\r\n * \r\n * }\r\n * \r\n * \r\n * \"text\" is the title that will be shown in the native header bar\r\n * \"left\" defines the button that will be shown on the left side of the native header bar (usually drawer or back)\r\n * \"right\" defines the button that will be shown on the right side of the native header bar\r\n * \r\n * There are some pre-defined button icons that can be used by putting the name in the button \r\n * property of left or right. They are \"drawer\" which is for the slide-out menu, \"home\", \"back\", \r\n * and \"close\" which is an X icon. If it's not one of those buttons, use \"custom\" for the \r\n * button property and set the text property to the text of the button.\r\n * \r\n * \"callback\" defines a javascript statement that iOS/Android will execute when that button is \r\n * touched natively.\r\n * \r\n * If the header bar title or buttons need to be changed after the view has loaded such as when \r\n * showing or hiding divs to simulate a page change, you can trigger a native update with the \r\n * following javascript:\r\n * \r\n * window.nativeHook.updateNavBar({\r\n * text: 'Message Center',\r\n * left: { button: 'drawer' },\r\n * right: { button: 'custom', text: 'Done', callback: 'messageCenterWidget.toggleEditor()' }\r\n * });\r\n * \r\n */\r\n\r\n(function (window) {\r\n var navigationBarJson;\r\n\r\n var isNativeApp = navigator.userAgent ? /nativeapp/.test(navigator.userAgent.toLowerCase()) : false;\r\n var isNativeAppWithNativeMenu = navigator.userAgent ? /nativemenu/.test(navigator.userAgent.toLowerCase()) : false;\r\n var isAndroid = navigator.userAgent ? /android/.test(navigator.userAgent.toLowerCase()) : false;\r\n var isReadyForRefresh = isAndroid; // if we are android, we can immediatly send updates\r\n\r\n function forceRefreshNavBar() {\r\n if (isReadyForRefresh && isNativeAppWithNativeMenu) {\r\n window.location.href = \"refresh-nav://alkamitech.com\";\r\n }\r\n }\r\n\r\n window.nativeHook = {\r\n isAndroid: function() {\r\n return isAndroid;\r\n },\r\n\r\n isNativeApp: function () {\r\n return isNativeApp;\r\n },\r\n\r\n isNativeAppWithNativeMenu: function () {\r\n return isNativeAppWithNativeMenu;\r\n },\r\n\r\n setNavBar: function (navBarJson) {\r\n navigationBarJson = navBarJson;\r\n },\r\n\r\n getNavBar: function() {\r\n return navigationBarJson;\r\n },\r\n\r\n getNavBarString: function () {\r\n /* \r\n * DEV-109285\r\n * As of iOS 14.2, there is an issue where the web view is not ready for refreshing until \r\n * the `didFinishNavigation` delegate is called. At that point we know that iOS uses `getNavBarString`\r\n * to grab information from the web view for the nav bar and consistently works.\r\n * So the fix is to wait until the first time iOS does this call to start allowing the apps\r\n * to control the update of the UI\r\n */\r\n\r\n if(!isReadyForRefresh && !isAndroid && isNativeAppWithNativeMenu) {\r\n isReadyForRefresh = true;\r\n }\r\n \r\n return JSON.stringify(navigationBarJson);\r\n },\r\n\r\n updateNavBar: function (navBarJson) {\r\n if (navigationBarJson === navBarJson)\r\n return;\r\n\r\n navigationBarJson = navBarJson;\r\n \r\n forceRefreshNavBar();\r\n }\r\n };\r\n\r\n})(this);","\"use strict\";\n/// \n// ReSharper disable once InconsistentNaming\nAlkami = Alkami || {};\nAlkami.Helpers = Alkami.Helpers || {};\n/**\n * Returns a query string containing the parameters for the given url\n * @param {string} url - The url for which to return the parameters string\n */\nAlkami.Helpers.getQueryStringFromUrl = function (url) {\n url.match(/\\?(.+)$/);\n const params = RegExp.$1;\n return params;\n};\n/**\n * Returns an object containing key value pairs of the parameters for the given url\n * @param {string} url - The url for which to return the parameters object\n */\nAlkami.Helpers.getQueryObjectFromUrl = function (url) {\n let params = Alkami.Helpers.getQueryStringFromUrl(url);\n params = params.split('&');\n const queryStringList = {};\n for (let i = 0; i < params.length; i++) {\n const tmp = params[i].split('=');\n queryStringList[tmp[0]] = decodeURI(tmp[1]);\n }\n return queryStringList;\n};\n/**\n * Returns the value for a specific parameter in the given url\n * @param {string} url - The url for which to find the given parameter name\n * @param {name} name - The name of the parameter for which to get the value out of the url\n */\nAlkami.Helpers.getUrlParamFromUrl = function (url, name) {\n name = name.replace(/[\\[]/, '\\\\\\[').replace(/[\\]]/, '\\\\\\]');\n const regexS = '[\\\\?&]' + name + '=([^&#]*)';\n const regex = new RegExp(regexS);\n const results = regex.exec(url);\n return results == null ? '' : results[1];\n};\nAlkami.Helpers.getQueryParams = function (returnObj) {\n console.warn('Alkami.Helpers.getQueryParams is deprecated. Please use URLSearchParams documentation: https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams');\n const url = window.location.toString();\n if (returnObj) {\n return Alkami.Helpers.getQueryObjectFromUrl(url);\n }\n return Alkami.Helpers.getQueryStringFromUrl(url);\n};\nconst getUrlParam = (name) => {\n console.warn('window.getUrlParam is deprecated. Please use URLSearchParams documentation: https://developer.mozilla.org/en-US/docs/Web/API/URLSearchParams');\n return Alkami.Helpers.getUrlParamFromUrl(window.location.hash, name);\n};\nconst parseDate = (input, format) => {\n console.warn('window.parseDate is deprecated. Please use Alkami.Utils.DateHelper.parseDate');\n return Alkami.Utils.DateHelper.parseDate(input, format);\n};\nfunction maskCard(cardNo) {\n const localCardNo = cardNo || null;\n if (localCardNo === null) {\n return cardNo;\n }\n function variableLength(_str, p1, p2, p3) {\n const replace = Array(p2.length + 1).join('X');\n return p1.concat(replace, p3);\n }\n return localCardNo.replace(new RegExp('(\\\\d{6})(\\\\d{3,6})(\\\\d{4})', 'g'), variableLength);\n}\n/********************\n* MONEY HELPERS\n* TODO: consolidate these methods\n* TODO: define consistent money Patterns\n**********************/\n/**\n * Returns a formatted dollar amount, including cents, based on a value provided, which can be a string, integer or float.\n * @param {string|integer|float} value - The value to format.\n * @param {boolean} allowZero - Whether or not a value of 0 should return a formatted amount ($0.00) or an empty string.\n */\nconst moneyRenderer = (amount, allowZero) => {\n console.warn('moneyRenderer is deprecated. Please use Alkami.CurrencyHelper.formatCurrency instead.');\n if (typeof allowZero === 'undefined') {\n allowZero = false;\n }\n // ReSharper disable once CoercedEqualsUsing\n if (!allowZero && (amount == '' || amount == null)) {\n return '';\n } /* use coercion!!! to avoid returning $0.00 on blank $$ fields */\n if (amount === '' || amount === null) {\n return '';\n }\n if (typeof amount === 'string') {\n amount = parseFloat(amount.replace(/[A-Za-z\\,\\$]/g, ''));\n }\n return amount.toLocaleString('en-US');\n};\nconst moneyRendererAllowZero = (v) => moneyRenderer(v, true);\nfunction localizeAmount(num) {\n console.warn('localizeAmount is deprecated. Please use Alkami.CurrencyHelper.formatCurrency instead.');\n if (typeof num === 'number') {\n const localNum = num.toFixed(2);\n return localNum;\n }\n return null;\n}\nfunction unlocalizeAmount(val) {\n console.warn('unlocalizeAmount has been deprecated. Please use Alkami.Utils.CurrencyHelper.parseCurrency instead.');\n val = val.replace(/(\\$|,)/g, '');\n if (parseFloat(val)) {\n return val;\n }\n return null;\n}\nfunction formatNumber(value) {\n console.warn('formatNumber is deprecated. Please use Alkami.CurrencyHelper.formatCurrency instead.');\n // if it is null, return 0\n if (value == null) {\n return '0.00';\n }\n if (typeof value === 'string') {\n value = unformatMoney(value);\n }\n if (isNaN(value)) {\n return '0.00';\n }\n return value.toFixed(2).replace(/(\\d)(?=(\\d{3})+\\.)/g, '$1,');\n}\nfunction formatMoney(value) {\n console.warn('formatMoney is deprecated. Please use Alkami.CurrencyHelper.formatCurrency instead.');\n const formattedAmount = formatNumber(value);\n if (value < 0) {\n return '($' + formattedAmount.replace('-', '') + ')';\n }\n return '$' + formattedAmount;\n}\nfunction unformatMoney(value) {\n console.warn('unformatMoney has been deprecated. Please use Alkami.Utils.CurrencyHelper.parseCurrency instead.');\n if (value === undefined || value === null) {\n return value;\n }\n let money = parseFloat(value.replace(/[^0-9.]/g, ''));\n if (value.startsWith('(')) {\n money = -money;\n }\n return money;\n}\n/********************************\n UI Helpers\n********************************/\nfunction bindDecimalFields() {\n const decimalFieldElements = Array.from(document.querySelectorAll('input[type=text].decimal'));\n decimalFieldElements.forEach(function (decimalFieldElement) {\n decimalFieldElement.addEventListener('keypress', function (e) {\n function stopEvent() {\n e.stopPropagation();\n e.preventDefault();\n }\n const noNegative = this.classList.contains('no-negative');\n // TODO (e as KeyboardEvent).which is deprecated, should use e.key or e.code\n if (e.which === 0 || e.which === Alkami.Helpers.KEY_CODES.DELETE || e.which === Alkami.Helpers.KEY_CODES.BACKSPACE || e.which === Alkami.Helpers.KEY_CODES.PERIOD || e.keyCode === Alkami.Helpers.KEY_CODES.TAB || e.which === Alkami.Helpers.KEY_CODES.COMMA) {\n return true;\n }\n if ((e.which === Alkami.Helpers.KEY_CODES.NUMPAD_SUBTRACT || e.which === 45) && noNegative) {\n stopEvent();\n return false;\n }\n if ((e.which === Alkami.Helpers.KEY_CODES.NUMPAD_SUBTRACT || e.which === 45) && /\\-/.test(this.value)) {\n stopEvent();\n return false;\n } // minus key and already has minus\n if (e.which >= 44 && e.which <= 57) {\n return true;\n }\n stopEvent();\n return false;\n });\n decimalFieldElement.addEventListener('blur', function () {\n this.value = unlocalizeAmount(this.value);\n });\n const p = decimalFieldElement.value.match(/(\\d)(?=(\\d{3})+(?!\\d))/);\n if (!p) {\n return true; // continue\n }\n // format number with commas.\n decimalFieldElement.value = decimalFieldElement.value.replace(/(\\d)(?=(\\d{3})+(?!\\d))/, '$1,');\n return true;\n });\n}\nfunction bindRequiredFields() {\n Array.from(document.querySelectorAll('[required]')).forEach(function (n) {\n const labelElement = document.querySelector(`label[for=${n.id}]`);\n if (labelElement) {\n labelElement.classList.add('required');\n }\n });\n}\nasync function instructify(element) {\n element.addEventListener('click', async (event) => {\n event.preventDefault();\n const url = new URL(element.getAttribute('href'), document.baseURI);\n if (new URL(document.baseURI).origin !== url.origin) {\n throw new Error('not a local url. may be unsafe.');\n }\n const contentElement = Alkami.Dom.parseHTML('
Loading...
');\n const promptComponent = Alkami.Helpers.createCloseDialog(contentElement, { title: element.innerText || 'Help', cls: 'instructions', destroyOnClose: true });\n promptComponent.open = true;\n const response = await fetch(url.href);\n const data = await response.text();\n contentElement.innerHTML = data;\n const sideNavElement = contentElement.querySelector('#modal_sidenav');\n if (!sideNavElement) {\n return;\n }\n const parent = contentElement.querySelector('.tab-panel-container');\n parent.querySelectorAll('.panel').forEach((panelElement) => Alkami.Dom.hideElement(panelElement));\n const listItemElements = sideNavElement.querySelectorAll('.list-item');\n listItemElements.forEach((listItemElement) => {\n listItemElement.addEventListener('click', (listItemEvent) => {\n listItemEvent.preventDefault();\n listItemEvent.stopPropagation();\n if (listItemElement.classList.contains('current')) {\n return;\n }\n const currentActivePanelItem = parent.querySelector('.panel.active');\n currentActivePanelItem.classList.remove('active');\n Alkami.Dom.hideElement(currentActivePanelItem);\n const newlyActivePanelItem = contentElement.querySelector(`.panel${listItemElement.getAttribute('href')}`);\n newlyActivePanelItem.classList.add('active');\n Alkami.Dom.showElement(newlyActivePanelItem);\n });\n });\n const firstListItemElement = sideNavElement.querySelector('ul li:first-child a');\n firstListItemElement.classList.add('current');\n const firstPanel = contentElement.querySelector(`.panel${firstListItemElement.getAttribute('href')}`);\n firstPanel.classList.add('active');\n Alkami.Dom.showElement(firstPanel);\n });\n}\n\n\n","\"use strict\";\nclass IdleTimeout {\n constructor(element, options) {\n this._options = {\n delay: 1000 * 60 * 10,\n pollDelay: 1000 * 60,\n keepAliveEvents: ['keydown', 'mousedown', 'mousemove', 'touchstart', 'touchend', 'wheel']\n };\n this._done = true;\n this._resetPoll = () => {\n clearTimeout(this._timer);\n const timeLeft = this.delay - this.duration;\n const pollDelay = this.pollDelay > timeLeft ? timeLeft : this.pollDelay;\n this._timer = window.setTimeout(this._pollHandler, pollDelay);\n };\n this._pollHandler = () => {\n this._dispatchEvent('idletimeout-poll');\n if (this.duration < this.delay) {\n this._resetPoll();\n return;\n }\n this._dispatchEvent('idletimeout-expire');\n this.cancel();\n };\n this._eventHandler = (event) => {\n if (this._done) {\n return;\n }\n if (event.type === 'message' && event.data !== 'idletimeout-reset') {\n return;\n }\n this.resetTimer();\n };\n this._element = element;\n this._options = Object.assign({}, this._options, options);\n this.resetTimer();\n }\n _initEventListeners() {\n this._options.keepAliveEvents.forEach((eventName) => {\n this._element.addEventListener(eventName, this._eventHandler);\n });\n window.addEventListener('message', this._eventHandler);\n }\n _destroyEventListeners() {\n this._options.keepAliveEvents.forEach((eventName) => {\n this._element.removeEventListener(eventName, this._eventHandler);\n });\n window.removeEventListener('message', this._eventHandler);\n }\n _dispatchEvent(eventName) {\n const event = new CustomEvent(eventName, { bubbles: true, cancelable: true, detail: this });\n this._element.dispatchEvent(event);\n }\n resetTimer() {\n if (this._done) {\n this._done = false;\n this._initEventListeners();\n }\n this._dispatchEvent('idletimeout-start');\n this._startTime = Date.now();\n this._resetPoll();\n }\n cancel() {\n this._done = true;\n clearTimeout(this._timer);\n this._destroyEventListeners();\n }\n get element() {\n return this._element;\n }\n get duration() {\n return Date.now() - this._startTime;\n }\n get delay() {\n return this._options.delay;\n }\n get pollDelay() {\n return this._options.pollDelay;\n }\n get startTime() {\n return this._startTime;\n }\n}\n\n\n","\"use strict\";\n/// \n/// \n// TODO: Componentize this guy.\nAlkami.Dom.onDocumentReady(() => {\n let sessionDialogCountdown;\n const isDebug = !!window.debugMode;\n const isPublic = !Alkami.Globals.isAuthenticated;\n const isRegistration = window.location.pathname.includes('/Registration');\n const isAuthentication = window.location.pathname.includes('/Authentication');\n const pingUrl = isDebug || isPublic ? '/Client/Ping' : '/Client/CheckSessionAlive';\n const logoutUrl = Alkami.Helpers.isMobileUrl() ? '/Mobile/Logout' : '/Logout';\n const isNativeTablet = Alkami.Helpers.isNativeTabletApplication();\n const isNative = Alkami.Helpers.isNativeApplication();\n //Native doesn't need to ping on public pages\n if ((isPublic || isDebug) && (isNative || isNativeTablet)) {\n return;\n }\n // Heartbeat for session keep alive.\n setInterval(function () {\n fetch(pingUrl, { credentials: 'same-origin' })\n .then((response) => response.text())\n .then((text) => {\n if (text === 'OK') {\n return Promise.resolve(text);\n }\n return Promise.reject(text);\n }).catch((e) => {\n if (isAuthentication) {\n return;\n } // If services go down, we don't want a recursive refresh\n window.location.href = logoutUrl + '?idle=true';\n });\n }, 1000 * 60);\n // Don't do idle timeout in debug/public mode except for registration\n if (isDebug || (isPublic && !isRegistration)) {\n return;\n }\n // Don't do idle timeout if on a native application. They have their own mechanism\n if (isNativeTablet || isNative) {\n return;\n }\n // Build the Modal\n const localizedSessionDialog = document.querySelector('.localization.sessionDialog');\n let sessionBodyMarkup = '

You have been inactive for a while. You will be logged out in seconds.

';\n let stillHereButtonText = 'I\\'m still here!';\n let logoutButtonText = 'Logout';\n let modalTitleText = 'Are you still there?';\n if (localizedSessionDialog) {\n const dataset = localizedSessionDialog.dataset;\n sessionBodyMarkup = dataset.bodyContent || sessionBodyMarkup;\n stillHereButtonText = dataset.stillHereButtonText || stillHereButtonText;\n logoutButtonText = dataset.logoutButtonText || logoutButtonText;\n modalTitleText = dataset.sessionModalTitle || modalTitleText;\n }\n const sessionPrompt = Alkami.Helpers.createDialog({\n id: 'session-dialog',\n title: modalTitleText,\n content: sessionBodyMarkup,\n handlers: {\n 'logout': function (e) {\n e.target.innerHTML = 'Please wait...';\n window.location.href = logoutUrl;\n },\n 'cancel': function (e) {\n window.clearInterval(window.sessionDialogCountdown);\n idleTimeout.resetTimer();\n }\n },\n buttons: [{\n text: logoutButtonText,\n type: 'secondary',\n handlerName: 'logout',\n closePrompt: false\n }, {\n text: stillHereButtonText,\n handlerName: 'cancel',\n closePrompt: true\n }]\n });\n // Idle timer initialize\n const idleElement = document.documentElement;\n const idleTimeout = new IdleTimeout(idleElement, {\n delay: window.idleLogoutMinutes * 1000 * 60,\n keepAliveEvents: ['keydown', 'mousedown'],\n pollDelay: 1000 * 60 // every minute in milliseconds\n });\n const expireHandler = () => {\n let counter = 30;\n const sessionTimeoutCountdownElement = document.getElementById('session-timeout-countdown');\n const updateCountdown = () => {\n if (sessionTimeoutCountdownElement) {\n sessionTimeoutCountdownElement.innerHTML = counter.toString();\n }\n };\n updateCountdown();\n sessionPrompt.open = true;\n // start countdown in dialog\n window.sessionDialogCountdown = window.setInterval(function () {\n let delayWindowMS = idleTimeout.delay + 30 * 1000; //Adding 30 seconds to the delay window for countdown\n let currentIdleWindowMS = Date.now() - idleTimeout.startTime;\n counter = Math.ceil((delayWindowMS - currentIdleWindowMS) / 1000);\n updateCountdown();\n if (counter <= 0) {\n window.clearInterval(window.sessionDialogCountdown);\n window.location.href = logoutUrl + '?idle=true';\n }\n }, 1000);\n };\n idleElement.addEventListener('idletimeout-expire', expireHandler);\n});\n\n\n","// animated bottom panel for selections (similar to dropdown)\r\n// defaults to partial height or can be forced to full height\r\n// only supports one active panel at a time, other panels will be closed\r\n// pass CSS-based selector, ID is best, of element to be made active\r\nfunction alkBottomPanel(element) {\r\n\tvar openedClass = 'alk-bottom-panel-opened';\r\n\tvar openedSelector = `.${openedClass}`;\r\n\tvar $element = document.querySelector(element);\r\n\tvar $body = document.body;\r\n\tvar $openedBottomPanels;\r\n\r\n\tif ($element === null) {\r\n\t\tconsole.log('ERROR: element cannot be found!');\r\n\t\treturn false;\r\n\t}\r\n\r\n\t// check for blocker\r\n\tvar $blocker = document.querySelector('.alk-bottom-panel-blocker');\r\n\tif ($blocker === null) {\r\n\t\t$body.insertAdjacentHTML('beforeend', '
');\r\n\t\t$blocker = document.querySelector('.alk-bottom-panel-blocker');\r\n\t}\r\n\r\n\t// check to make sure it's a valid element\r\n\tif ($element.classList.contains('alk-bottom-panel')) {\r\n\t\tvar isPanelOpen = $element.classList.contains(openedClass);\r\n\t\t// check for active panel\r\n\t\t$openedBottomPanels = document.querySelectorAll(openedSelector);\r\n\t\tif ($openedBottomPanels.length) {\r\n\t\t\tArray.from($openedBottomPanels).forEach(\r\n\t\t\t\t(p) => p.classList.remove(openedClass)\r\n\t\t\t);\r\n\t\t}\r\n\r\n\t\tif (isPanelOpen) {\r\n\t\t\t// there is no active panel or\r\n\t\t\t// active panel is the one just set in motion\r\n\t\t\t// therefore toggle classes as expected\r\n\t\t\t$element.setAttribute('aria-hidden', 'true');\r\n\t\t\t$blocker.classList.remove('alk-bottom-panel-blocker-show');\r\n\t\t\t$element.classList.remove(openedClass);\r\n\t\t} else {\r\n\t\t\t// there is already an active panel as new one is activated\r\n\t\t\t// therefore close the initial panel\r\n\t\t\t// note: this should always be one element but we go with \"all\" just in case\r\n\t\t\t// show newly activated panel\r\n\t\t\t$element.setAttribute('aria-hidden', 'false');\r\n\t\t\t$blocker.classList.add('alk-bottom-panel-blocker-show');\r\n\t\t\t$element.classList.add(openedClass);\r\n\t\t}\r\n\t}\r\n}\r\n\r\nfunction formatCurrency(decimal) {\r\n\tconsole.warn('formatCurrency is deprecated. Please use Alkami.CurrencyHelper.formatCurrency instead.');\r\n\t// http://stackoverflow.com/questions/2901102/how-to-print-a-number-with-commas-as-thousands-separators-in-javascript\r\n\tvar parts = decimal.toString().split(\".\");\r\n\r\n\t// Add a decimal part if number is whole.\r\n\tif (parts.length == 1) {\r\n\t\tparts[1] = \"00\";\r\n\t}\r\n\r\n\t// If number is 67.5, add a 0 so it will be formatted $67.50\r\n\tif (parts[1].length == 1) {\r\n\t\tparts[1] = parts[1] + \"0\";\r\n\t}\r\n\r\n\tparts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n\treturn \"$\" + parts.join(\".\");\r\n}\r\n","var mobileUtils = {\r\n showFlashMessage: function (type, message, duration, element) {\r\n console.warn('mobileUtils.showFlashMessage is deprecated. Please use Alkami.FlashBanner.show instead.');\r\n\r\n type = Object.keys(Alkami.FlashBanner.flashBanner.types).find(function(t) { return t === type.toLowerCase(); }) || 'warning';\r\n duration = duration || 3000;\r\n Alkami.FlashBanner.show(message, type, duration, element);\r\n },\r\n\r\n hideFlashMessage: function () {\r\n console.warn('mobileUtils.removeFlashMessage is deprecated. Please use Alkami.FlashBanner.hide instead.');\r\n Alkami.FlashBanner.hide();\r\n },\r\n\r\n removeFlashMessage: function () {\r\n console.warn('mobileUtils.removeFlashMessage is deprecated. Please use Alkami.FlashBanner.hide(true); instead.');\r\n Alkami.FlashBanner.hide(true);\r\n },\r\n\r\n formatNumber: function(value) {\r\n console.warn('mobileUtils.formatNumber is deprecated. Please use Alkami.CurrencyHelper.formatCurrency instead.');\r\n // if it is null, return 0\r\n if (value == null) {\r\n return \"0.00\";\r\n }\r\n\r\n if (typeof value == \"string\") {\r\n value = mobileUtils.unformatMoney(value);\r\n }\r\n\r\n if (isNaN(value)) {\r\n return \"0.00\";\r\n }\r\n\r\n return value.toFixed(2).replace(/(\\d)(?=(\\d{3})+\\.)/g, '$1,');\r\n },\r\n\r\n formatMoney: function(value) {\r\n console.warn('mobileUtils.formatMoney is deprecated. Please use Alkami.CurrencyHelper.formatCurrency instead.');\r\n var formattedAmount = mobileUtils.formatNumber(value);\r\n if (value < 0) {\r\n return '($' + formattedAmount.replace('-', '') + ')';\r\n }\r\n\r\n return '$' + formattedAmount;\r\n },\r\n\r\n unformatMoney: function(value) {\r\n console.warn('mobileUtils.unformatMoney is deprecated. Please use Alkami.CurrencyHelper.parseCurrency instead.');\r\n return parseFloat(value.replace(/[^0-9.]/g, ''));\r\n },\r\n\r\n monthsBetween: function () {\r\n console.warn('mobileUtils.monthsBetween is deprecated. Please use Alkami.DateHelper.monthsBetween instead.');\r\n return Alkami.Utils.DateHelper.monthsBetween.apply(this, arguments);\r\n }\r\n};\r\n","// Superscript cents in dollar amounts helper plugin.\r\n(function ($) {\r\n\tif(!$) { return; }\r\n\r\n\t$.fn.serializeHash = function (opts) {\r\n\t var p = {}, opts = opts || {};\r\n\t var a = this.serializeArray(opts);\r\n\t $.each(a, function (i, n) {\r\n\t p[n.name] = n.value;\r\n\t });\r\n\t return p;\r\n\t};\r\n\r\n}(jQuery));\r\n","function bindCurrencyFields() {\r\n\t$('input.currency')\r\n\t\t.on('keydown', function(e) {\r\n\t\t\t// ReSharper disable InconsistentNaming\r\n\t\t\tvar BACKSPACE_KEY = 8,\r\n\t\t\t\tDELETE_KEY = 35,\r\n\t\t\t\tPERIOD_KEY = 190,\r\n\t\t\t\tDECIMAL_KEY = 110,\r\n\t\t\t\tCOMMA_KEY = 188,\r\n\t\t\t\tANDROID_NUMERIC_KEYBOARD_NON_NUMERIC_KEY = 0;\r\n\t\t\t// ReSharper restore InconsistentNaming\r\n\r\n\t\t\tif (e.which == BACKSPACE_KEY || e.which == DELETE_KEY) {\r\n\t\t\t\t$(this).data('last-value', '');\r\n\t\t\t} else {\r\n\t\t\t\t$(this).data('last-value', this.value);\r\n\t\t\t}\r\n\r\n\t\t\t// If you type 45.67, The 4 and 5 would first be converted to 0.45 and then adding the '.' would be invalid, so we need to ignore decimals.\r\n\t\t\tif (e.which == ANDROID_NUMERIC_KEYBOARD_NON_NUMERIC_KEY || e.which == PERIOD_KEY || e.which == DECIMAL_KEY || e.which == COMMA_KEY) {\r\n\t\t\t\te.preventDefault();\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t})\r\n\t\t.on('keyup', function(e) {\r\n\t\t\t// Remove non-digits and leading zeroes.\r\n\t\t\tvar digits = $(this).val().replace(/\\D*/g, '').replace(/^0*/, '');\r\n\r\n\t\t\t// This happens if the type of the input field is number and a comma or other character is entered that makes the input not a number, so the input gets cleared out by the browser.\r\n\t\t\tif (digits.length == 0 && $(this).data('last-value')) {\r\n\t\t\t\tdigits = $(this).data('last-value').replace(/\\D*/g, '').replace(/^0*/, '');\r\n\t\t\t}\r\n\r\n\t\t\tif (digits.length == 0) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tvar pad = \"000\";\r\n\r\n\t\t\tvar padded = pad.substring(0, pad.length - digits.length) + digits;\r\n\t\t\tvar dollars = padded.slice(0, padded.length - 2);\r\n\t\t\tvar cents = padded.slice(-2);\r\n\r\n\t\t\t$(this).val(dollars + '.' + cents);\r\n\t\t});\r\n}\r\n\r\n// call when partial panel header is available in DOM\r\n// creates shadow effect for content scrolling underneath header\r\nfunction partialPanelHeaderScrollEffect() {\r\n\t$('.mm-partial-panel').off('scroll.partialpanel').on('scroll.partialpanel', function() {\r\n\t\tvar $this = $(this);\r\n\t\tvar panelScrollDistance = $this.scrollTop();\r\n\t\tvar $panelHeader = $this.find('.panel-header');\r\n\r\n\t\tif (panelScrollDistance > 10) {\r\n\t\t\t$panelHeader.addClass('scrolled');\r\n\t\t} else {\r\n\t\t\tif ($panelHeader.hasClass('scrolled')) {\r\n\t\t\t\t$panelHeader.removeClass('scrolled');\r\n\t\t\t}\r\n\t\t}\r\n\t});\r\n}\r\n\r\nfunction formatAmountInput() {\r\n\tvar defaultAmountText = $(\"#amountInput input\").attr(\"placeholder\");\r\n\tvar focusAmountText = \"0.00\";\r\n\r\n\tvar checkAmountVal = function() {\r\n\t\tif (!$(\"#amountInput input\").val()) {\r\n\t\t\t$(\"#amountInput\").removeClass(\"focused\");\r\n\t\t}\r\n\t};\r\n\r\n\t// Check if focused class has been applied\r\n\tcheckAmountVal();\r\n\r\n\t// Updates placeholder for amount input on focus/blur\r\n\t$('#amountInput input').focus(function() {\r\n\t\t$(this).attr(\"placeholder\", focusAmountText);\r\n\t\t$(\"#amountInput\").addClass(\"focused\");\r\n\t});\r\n\r\n\t$('#amountInput input').blur(function() {\r\n\t\t$(this).attr(\"placeholder\", defaultAmountText);\r\n\t\tif (!$(this).val()) {\r\n\t\t\t$(\"#amountInput\").removeClass(\"focused\");\r\n\t\t}\r\n\t});\r\n}\r\n","(function(global) {\r\n\tvar PasswordTogglefication = function PasswordTogglefication(inputElement, newOptions) {\r\n\t\tif (inputElement.tagName !== 'INPUT') {\r\n\t\t\tconsole.warn('inputElement is not of type Input. Ignored.');\r\n\t\t\treturn;\r\n\t\t}\r\n\t\tif (this === global) {\r\n\t\t\tthrow new Error('This should be used as a constructor. Try \"new PasswordTogglefication(element)\"')\r\n\t\t}\r\n\r\n\t\tvar self = this;\r\n\t\tvar assign = Object.assign || (jQuery && jQuery.extend);\r\n\r\n\t\tself.options = assign({}, PasswordTogglefication.defaultOptions, newOptions);\r\n\t\tself.element = inputElement;\r\n\t\tself.parentElement = inputElement.parentNode;\r\n\t\tself.inputType = self.element.getAttribute('type') || 'text';\r\n\r\n\t\tself.wrapperElement = document.createElement(self.options.wrapperElementType);\r\n\t\tself.toggleButtonElement = document.createElement('button');\r\n\t\tself.toggleButtonElement.setAttribute('type', 'button');\r\n\r\n\t\tself.options.wrapperClass.split(' ').forEach(function(className) {\r\n\t\t\tself.wrapperElement.classList.add(className);\r\n\t\t});\r\n\r\n\t\tself.options.toggleButtonClass.split(' ').forEach(function(className) {\r\n\t\t\tself.toggleButtonElement.classList.add(className);\r\n\t\t});\r\n\r\n\t\tself.toggleButtonElement.addEventListener('click', function(e) {\r\n\t\t\tself.togglePassword();\r\n\t\t\te.preventDefault();\r\n\t\t});\r\n\r\n\t\tself.element.addEventListener('blur', function() {\r\n\t\t\tif (!self.options.passwordOnBlur || !self.element.value) {\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\r\n\t\t\tself.togglePassword(PasswordTogglefication.TYPES.PASSWORD);\r\n\t\t});\r\n\r\n\t\tself.parentElement.insertBefore(self.wrapperElement, self.element);\r\n\t\tself.wrapperElement.appendChild(self.element);\r\n\t\tself.wrapperElement.appendChild(self.toggleButtonElement);\r\n\t\tself.setType(self.options.startState);\r\n\r\n\t\tif (self.inputType === 'password') {\r\n\t\t\tself.inputType = 'text';\r\n\t\t}\r\n\t}\r\n\r\n\tPasswordTogglefication.prototype.togglePassword = function(setType) {\r\n\t\tvar type = this.element.getAttribute('type');\r\n\t\tvar toggledType = setType || (type === this.inputType ? PasswordTogglefication.TYPES.PASSWORD : PasswordTogglefication.TYPES.VISIBLE);\r\n\t\tthis.setType(toggledType);\r\n\t\tthis.options.toggleCallback(toggledType, this);\r\n\t};\r\n\r\n\tPasswordTogglefication.prototype.setType = function(type) {\r\n\t\tvar isPassword = type === PasswordTogglefication.TYPES.PASSWORD;\r\n\t\tvar fromClass = isPassword ? this.options.typeVisibleClass : this.options.typePasswordClass;\r\n\t\tvar toClass = isPassword ? this.options.typePasswordClass : this.options.typeVisibleClass;\r\n\t\tvar inputType = isPassword ? 'password' : this.inputType;\r\n\r\n\t\tthis.element.setAttribute('type', inputType);\r\n\t\tthis.toggleButtonElement.innerHTML = isPassword ? this.options.toggleButtonPasswordContent : this.options.toggleButtonVisibleContent;\r\n\t\tthis.wrapperElement.classList.remove(fromClass);\r\n\t\tthis.wrapperElement.classList.add(toClass);\r\n\t};\r\n\r\n\tPasswordTogglefication.TYPES = {\r\n\t\tPASSWORD: 'password',\r\n\t\tVISIBLE: 'visible'\r\n\t}\r\n\r\n\tPasswordTogglefication.defaultOptions = {\r\n\t\twrapperElementType: 'div',\r\n\t\twrapperClass: 'password-togglefication',\r\n\t\ttypePasswordClass: 'password-togglefication-type-password',\r\n\t\ttypeVisibleClass: 'password-togglefication-type-visible',\r\n\t\ttoggleButtonClass: 'password-togglefication-button',\r\n\t\ttoggleButtonPasswordContent: Alkami.Localization.SiteText['PasswordTogglefication.Show'],\r\n\t\ttoggleButtonVisibleContent: Alkami.Localization.SiteText['PasswordTogglefication.Hide'],\r\n\t\tpasswordOnBlur: true,\r\n\t\tstartState: PasswordTogglefication.TYPES.PASSWORD,\r\n\t\ttoggleCallback: function() {} //noop\r\n\t};\r\n\r\n\tglobal.PasswordTogglefication = PasswordTogglefication;\r\n\r\n\tif (global.ko) {\r\n\t global.ko.bindingHandlers.passwordTogglefication = {\r\n\t init: function (element, valueAccessor) {\r\n\t var value = valueAccessor();\r\n\t new PasswordTogglefication(element, ko.unwrap(value));\r\n\t }\r\n\t }\r\n\t}\r\n})(window);\r\n","\"use strict\";\n((global) => {\n global.Alkami = global.Alkami || {};\n global.Alkami.Globals = global.Alkami.Globals || {};\n class FeatureDetection {\n constructor(features = FeatureDetection.features, element = document.documentElement) {\n this.features = features;\n this.element = element;\n }\n detectFeatures() {\n this.features.forEach(([name, fn]) => {\n let value = fn();\n if (typeof value === \"boolean\") {\n value = value ? \"\" : null;\n }\n if (value !== null) {\n this.element.setAttribute(name, value);\n }\n });\n }\n clearAttributes() {\n this.features.forEach((tuple) => {\n const name = tuple[0];\n this.element.removeAttribute(name);\n });\n }\n refreshAttributes() {\n this.clearAttributes();\n this.detectFeatures();\n }\n }\n FeatureDetection.features = [\n ['data-native-application', Alkami.Helpers.isNativeApplication],\n ['data-native-tablet-application', Alkami.Helpers.isNativeTabletApplication],\n ['data-native-menu', Alkami.Helpers.hasNativeMenu],\n ['data-native-pin-support', Alkami.Helpers.hasNativePinSupport],\n ['data-android', Alkami.Helpers.isAndroidBrowser],\n ['data-ios', Alkami.Helpers.isIOSBrowser],\n ['data-ipad', Alkami.Helpers.isIPadBrowser],\n ['data-mobile-page', Alkami.Helpers.isMobileUrl],\n ['data-authenticated', () => !!Alkami.Globals.isAuthenticated],\n ];\n const instance = new FeatureDetection();\n instance.detectFeatures();\n global.Alkami.FeatureDetection = instance;\n})(window);\n\n\n"]}