{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@babel/runtime/regenerator/index.js","webpack:///./node_modules/@babel/runtime/helpers/regeneratorRuntime.js","webpack:///./node_modules/js-video-url-parser/lib/base.js","webpack:///./node_modules/js-video-url-parser/lib/urlParser.js","webpack:///./app/frontend/javascripts/components/BlockCustomHtml.js","webpack:///./app/frontend/packs/pages/static/page_layout_top.js","webpack:///./node_modules/@babel/runtime/helpers/typeof.js","webpack:///./app/frontend/javascripts/custom_link_menu.js","webpack:///./node_modules/lodash/debounce.js","webpack:///./node_modules/lodash/_Symbol.js","webpack:///./node_modules/lodash/_root.js","webpack:///./node_modules/keen-slider/keen-slider.es.js","webpack:///./node_modules/lodash/isObject.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/lodash/isSymbol.js","webpack:///./node_modules/lodash/_freeGlobal.js","webpack:///./node_modules/lodash/_baseGetTag.js","webpack:///./node_modules/lodash/_getRawTag.js","webpack:///./node_modules/lodash/_objectToString.js","webpack:///./node_modules/lodash/isObjectLike.js","webpack:///./node_modules/lodash/now.js","webpack:///./node_modules/lodash/toNumber.js","webpack:///./node_modules/lodash/_baseTrim.js","webpack:///./node_modules/lodash/_trimmedEndIndex.js","webpack:///./node_modules/js-video-url-parser/dist/jsVideoUrlParser.js","webpack:///./node_modules/js-video-url-parser/lib/provider/youtube.js","webpack:///./node_modules/js-video-url-parser/lib/util.js","webpack:///./app/frontend/javascripts/js-video-url-parser/provider/youtube/index.js","webpack:///./app/frontend/javascripts/editor/view_mode.js","webpack:///./app/frontend/javascripts/api_utils.js","webpack:///./app/frontend/javascripts/components/Like.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","runtime","regeneratorRuntime","accidentalStrictMode","globalThis","Function","_typeof","_regeneratorRuntime","e","a","iterator","asyncIterator","u","define","configurable","writable","wrap","Generator","Context","makeInvokeMethod","tryCatch","type","arg","h","f","y","GeneratorFunction","GeneratorFunctionPrototype","this","getPrototypeOf","v","values","g","defineIteratorMethods","forEach","_invoke","AsyncIterator","invoke","resolve","__await","then","callInvokeWithMethodAndArg","Error","done","method","delegate","maybeInvokeDelegate","sent","_sent","dispatchException","abrupt","TypeError","resultName","next","nextLoc","pushTryEntry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","isNaN","length","displayName","isGeneratorFunction","constructor","mark","setPrototypeOf","__proto__","awrap","async","Promise","keys","reverse","pop","prev","charAt","slice","stop","rval","handle","complete","finish","delegateYield","parser","obj","getQueryParams","UrlParser","_i","_arr","plugins","parseProvider","url","match","undefined","parse","result","provider","plugin","params","removeEmptyParameters","alternatives","op","videoInfo","vi","format","defaultFormat","formats","apply","assign","BlockCustomHtml","templateId","getAttribute","template","document","getElementById","content","cloneNode","attachShadow","appendChild","HTMLElement","PageLayoutTop","requestInitPosts","initPostUrl","$","ajax","dataType","response","initPostsByCallbackAndPostTagId","postTagId","self","window","IntersectionObserver","observer","entries","entry","isIntersecting","unobserve","target","root","rootMargin","threshold","observe","querySelector","bindCustomLinkPostEvent","customElements","Coorum","KeenSlider","Like","ViewMode","replace","initCustomLinkMenu","addEventListener","bindCustomLinkMenuEvent","el","find","each","on","dataset","id","data","beforeSend","jqueryAjaxBeforeSend","isObject","now","toNumber","FUNC_ERROR_TEXT","nativeMax","Math","max","nativeMin","min","func","wait","options","lastArgs","lastThis","maxWait","timerId","lastCallTime","lastInvokeTime","leading","maxing","trailing","invokeFunc","time","args","thisArg","shouldInvoke","timeSinceLastCall","timerExpired","trailingEdge","setTimeout","timeWaiting","remainingWait","debounced","isInvoking","arguments","leadingEdge","clearTimeout","cancel","flush","_Symbol","freeGlobal","freeSelf","_n","Array","concat","Date","removeAttribute","setAttribute","isArray","querySelectorAll","NodeList","raw","cancelable","defaultPrevented","preventDefault","stopPropagation","add","addListener","input","nativeEvent","changedTouches","targetTouches","detail","x","identifier","idChanged","screenX","pageX","screenY","pageY","purge","removeListener","removeEventListener","getBoundingClientRect","round","b","k","w","M","T","_","C","E","abs","A","floor","indexOf","reduce","origin","rel","z","L","I","sign","S","D","loop","distance","timestamp","O","emit","map","rtl","portion","size","maxIdx","minIdx","position","progress","slides","details","absToRel","distToIdx","idxToDist","init","trackConfig","range","track","Number","to","velocity","lastTimestamp","pow","dist","dur","duration","easing","earlyExit","rubberband","animator","start","moveToIdx","vertical","innerHeight","innerWidth","drag","disabled","dragSpeed","container","passive","scrollHeight","clientHeight","scrollWidth","clientWidth","scrollTop","scrollLeft","style","overflowY","overflowX","active","requestAnimationFrame","renderMode","transform","getComputedStyle","getPropertyValue","matches","__media","breakpoints","height","width","matchMedia","spacing","selector","destroy","update","defaultAnimation","targetIdx","cancelAnimationFrame","initial","console","error","baseGetTag","isObjectLike","symbolTag","global","getRawTag","objectToString","nullTag","undefinedTag","symToStringTag","objectProto","nativeObjectToString","toString","isOwn","tag","unmasked","baseTrim","isSymbol","NAN","reIsBadHex","reIsBinary","reIsOctal","freeParseInt","parseInt","other","valueOf","isBinary","test","trimmedEndIndex","reTrimStart","string","reWhitespace","index","factory","_typeof2","util","hasParams","combined","sort","timeString","timePairs","totalSeconds","timeValues","trim","split","getLetterTime","getColonTime","getQueryParams$1","qs","join","substr","decodeURIComponent","urlParser","base","Allocine","embed","createEmbedUrl","mediaTypes","VIDEO","parseUrl","mediaType","combineParams$1","CanalPlus","parseParameters","vid","combineParams$2","Coub","createLongUrl","createUrl","baseUrl","combineParams$3","getTime$1","Dailymotion","createShortUrl","image","createImageUrl","parseTime","combineParams$4","Loom","combineParams$5","getTime$2","Twitch","STREAM","CLIP","seperateId","pre","parseChannel","channel","utm_content","video","clip","isClip","parseMediaType","_this","combineParams$6","getTime$3","Vimeo","parseHash","hash","startTime","combineParams$7","getTime$4","Wistia","embedjsonp","createEmbedJsonpUrl","EMBEDVIDEO","wtime","wvideo","combineParams$8","Youku","flash","createFlashUrl","createStaticUrl","VideoIDS","combineParams$9","getTime$5","YouTube","shortImage","createShortImageUrl","longImage","createLongImageUrl","imageQualities","DEFAULT","HQDEFAULT","SDDEFAULT","MQDEFAULT","MAXRESDEFAULT","defaultImageQuality","PLAYLIST","SHARE","CHANNEL","parseVideoUrl","parseChannelUrl","list","ci","channelResult","feature","listType","playlist","imageQuality","combineParams$a","getTime$6","SoundCloud","TRACK","APITRACK","APIPLAYLIST","combineParams$b","TeacherTube","AUDIO","DOCUMENT","COLLECTION","GROUP","parsePlaylist","mediaTypeMatch","combineParams$c","TikTok","combineParams$d","Ted","combineParams$e","Facebook","watch","createWatchUrl","pageId","_require","combineParams","getTime","YouTubeExtend","videoUrlParser","youtube","$element","elem","attributes","parentElement","innerHTML","createVideoBlock","createOGCard","card","videoContainer","createElement","iframe","className","outerHTML","request_url","encodeURIComponent","fetchWithTimeout","json","html","withLoadingAndDisable","loadingTarget","disableTargets","callback","classList","remove","ms","pollingRequest","requestCb","stopConditionCb","intervalMs","getCsrfToken","xhr","setRequestHeader","apiFailResultHandler","message","responseJSON","status","alert","resource","timeout","controller","AbortController","abort","fetch","headers","signal","buildSafeURLSearchParams","paramsObj","URLSearchParams","classname","sns_animation","rootElement","$buttons","hide_event","long_touch_event","clickEvent","hoverEvent","touchEvent","reactionPopup","popupHide","popupShowWithTimer","popupShow","eyecatch","animationend","_debounce","formAction","reactionParam","reaction","text","replacedButton","isLessMD","click","contains","touch","touches","targetElement","elementFromPoint","clientX","clientY","closest","popupElem"],"mappings":";aACE,IAAIA,EAAmB,CAAC,EAGxB,SAASC,EAAoBC,GAG5B,GAAGF,EAAiBE,GACnB,OAAOF,EAAiBE,GAAUC,QAGnC,IAAIC,EAASJ,EAAiBE,GAAY,CACzCG,EAAGH,EACHI,GAAG,EACHH,QAAS,CAAC,GAUX,OANAI,EAAQL,GAAUM,KAAKJ,EAAOD,QAASC,EAAQA,EAAOD,QAASF,GAG/DG,EAAOE,GAAI,EAGJF,EAAOD,OACf,CAIAF,EAAoBQ,EAAIF,EAGxBN,EAAoBS,EAAIV,EAGxBC,EAAoBU,EAAI,SAASR,EAASS,EAAMC,GAC3CZ,EAAoBa,EAAEX,EAASS,IAClCG,OAAOC,eAAeb,EAASS,EAAM,CAAEK,YAAY,EAAMC,IAAKL,GAEhE,EAGAZ,EAAoBkB,EAAI,SAAShB,GACX,qBAAXiB,QAA0BA,OAAOC,aAC1CN,OAAOC,eAAeb,EAASiB,OAAOC,YAAa,CAAEC,MAAO,WAE7DP,OAAOC,eAAeb,EAAS,aAAc,CAAEmB,OAAO,GACvD,EAOArB,EAAoBsB,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQrB,EAAoBqB,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,kBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAKX,OAAOY,OAAO,MAGvB,GAFA1B,EAAoBkB,EAAEO,GACtBX,OAAOC,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOrB,EAAoBU,EAAEe,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,EAAM,EAAEC,KAAK,KAAMD,IAC9I,OAAOF,CACR,EAGAzB,EAAoB6B,EAAI,SAAS1B,GAChC,IAAIS,EAAST,GAAUA,EAAOqB,WAC7B,WAAwB,OAAOrB,EAAgB,OAAG,EAClD,WAA8B,OAAOA,CAAQ,EAE9C,OADAH,EAAoBU,EAAEE,EAAQ,IAAKA,GAC5BA,CACR,EAGAZ,EAAoBa,EAAI,SAASiB,EAAQC,GAAY,OAAOjB,OAAOkB,UAAUC,eAAe1B,KAAKuB,EAAQC,EAAW,EAGpH/B,EAAoBkC,EAAI,UAIjBlC,EAAoBA,EAAoBmC,EAAI,K,qBChFrD,IAAIC,EAAU,EAAQ,GAAR,GACdjC,EAAOD,QAAUkC,EAGjB,IACEC,mBAAqBD,CAOvB,CANE,MAAOE,GACmB,kBAAfC,WACTA,WAAWF,mBAAqBD,EAEhCI,SAAS,IAAK,yBAAdA,CAAwCJ,EAE5C,C,qBCdA,IAAIK,EAAU,EAAQ,IAAwB,QAC9C,SAASC,IACP,aACAvC,EAAOD,QAAUwC,EAAsB,WACrC,OAAOC,CACT,EAAGxC,EAAOD,QAAQsB,YAAa,EAAMrB,EAAOD,QAAiB,QAAIC,EAAOD,QACxE,IAAIoB,EACFqB,EAAI,CAAC,EACLzB,EAAIJ,OAAOkB,UACXH,EAAIX,EAAEe,eACNpB,EAAIC,OAAOC,gBAAkB,SAAUO,EAAGqB,EAAGzB,GAC3CI,EAAEqB,GAAKzB,EAAEG,KACX,EACAjB,EAAI,mBAAqBe,OAASA,OAAS,CAAC,EAC5CyB,EAAIxC,EAAEyC,UAAY,aAClBpC,EAAIL,EAAE0C,eAAiB,kBACvBC,EAAI3C,EAAEgB,aAAe,gBACvB,SAAS4B,EAAO1B,EAAGqB,EAAGzB,GACpB,OAAOJ,OAAOC,eAAeO,EAAGqB,EAAG,CACjCtB,MAAOH,EACPF,YAAY,EACZiC,cAAc,EACdC,UAAU,IACR5B,EAAEqB,EACR,CACA,IACEK,EAAO,CAAC,EAAG,GAKb,CAJE,MAAO1B,GACP0B,EAAS,SAAgB1B,EAAGqB,EAAGzB,GAC7B,OAAOI,EAAEqB,GAAKzB,CAChB,CACF,CACA,SAASiC,EAAK7B,EAAGqB,EAAGzB,EAAGW,GACrB,IAAIzB,EAAIuC,GAAKA,EAAEX,qBAAqBoB,EAAYT,EAAIS,EAClDR,EAAI9B,OAAOY,OAAOtB,EAAE4B,WACpBvB,EAAI,IAAI4C,EAAQxB,GAAK,IACvB,OAAOhB,EAAE+B,EAAG,UAAW,CACrBvB,MAAOiC,EAAiBhC,EAAGJ,EAAGT,KAC5BmC,CACN,CACA,SAASW,EAASjC,EAAGqB,EAAGzB,GACtB,IACE,MAAO,CACLsC,KAAM,SACNC,IAAKnC,EAAEf,KAAKoC,EAAGzB,GAOnB,CALE,MAAOI,GACP,MAAO,CACLkC,KAAM,QACNC,IAAKnC,EAET,CACF,CACAqB,EAAEQ,KAAOA,EACT,IAAIO,EAAI,iBACNrD,EAAI,iBACJsD,EAAI,YACJxB,EAAI,YACJyB,EAAI,CAAC,EACP,SAASR,IAAa,CACtB,SAASS,IAAqB,CAC9B,SAASC,IAA8B,CACvC,IAAI5B,EAAI,CAAC,EACTc,EAAOd,EAAGU,GAAG,WACX,OAAOmB,IACT,IACA,IAAIrD,EAAII,OAAOkD,eACbC,EAAIvD,GAAKA,EAAEA,EAAEwD,EAAO,MACtBD,GAAKA,IAAM/C,GAAKW,EAAEtB,KAAK0D,EAAGrB,KAAOV,EAAI+B,GACrC,IAAIE,EAAIL,EAA2B9B,UAAYoB,EAAUpB,UAAYlB,OAAOY,OAAOQ,GACnF,SAASkC,EAAsB9C,GAC7B,CAAC,OAAQ,QAAS,UAAU+C,SAAQ,SAAU1B,GAC5CK,EAAO1B,EAAGqB,GAAG,SAAUrB,GACrB,OAAOyC,KAAKO,QAAQ3B,EAAGrB,EACzB,GACF,GACF,CACA,SAASiD,EAAcjD,EAAGqB,GACxB,SAAS6B,EAAOtD,EAAGL,EAAGT,EAAGwC,GACvB,IAAInC,EAAI8C,EAASjC,EAAEJ,GAAII,EAAGT,GAC1B,GAAI,UAAYJ,EAAE+C,KAAM,CACtB,IAAIT,EAAItC,EAAEgD,IACRC,EAAIX,EAAE1B,MACR,OAAOqC,GAAK,UAAYjB,EAAQiB,IAAM7B,EAAEtB,KAAKmD,EAAG,WAAaf,EAAE8B,QAAQf,EAAEgB,SAASC,MAAK,SAAUrD,GAC/FkD,EAAO,OAAQlD,EAAGlB,EAAGwC,EACvB,IAAG,SAAUtB,GACXkD,EAAO,QAASlD,EAAGlB,EAAGwC,EACxB,IAAKD,EAAE8B,QAAQf,GAAGiB,MAAK,SAAUrD,GAC/ByB,EAAE1B,MAAQC,EAAGlB,EAAE2C,EACjB,IAAG,SAAUzB,GACX,OAAOkD,EAAO,QAASlD,EAAGlB,EAAGwC,EAC/B,GACF,CACAA,EAAEnC,EAAEgD,IACN,CACA,IAAIvC,EACJL,EAAEkD,KAAM,UAAW,CACjB1C,MAAO,SAAeC,EAAGO,GACvB,SAAS+C,IACP,OAAO,IAAIjC,GAAE,SAAUA,EAAGzB,GACxBsD,EAAOlD,EAAGO,EAAGc,EAAGzB,EAClB,GACF,CACA,OAAOA,EAAIA,EAAIA,EAAEyD,KAAKC,EAA4BA,GAA8BA,GAClF,GAEJ,CACA,SAAStB,EAAiBX,EAAGzB,EAAGW,GAC9B,IAAIhB,EAAI6C,EACR,OAAO,SAAUtD,EAAGwC,GAClB,GAAI/B,IAAM8C,EAAG,MAAM,IAAIkB,MAAM,gCAC7B,GAAIhE,IAAMsB,EAAG,CACX,GAAI,UAAY/B,EAAG,MAAMwC,EACzB,MAAO,CACLvB,MAAOC,EACPwD,MAAM,EAEV,CACA,IAAKjD,EAAEkD,OAAS3E,EAAGyB,EAAE4B,IAAMb,IAAK,CAC9B,IAAInC,EAAIoB,EAAEmD,SACV,GAAIvE,EAAG,CACL,IAAIsC,EAAIkC,EAAoBxE,EAAGoB,GAC/B,GAAIkB,EAAG,CACL,GAAIA,IAAMa,EAAG,SACb,OAAOb,CACT,CACF,CACA,GAAI,SAAWlB,EAAEkD,OAAQlD,EAAEqD,KAAOrD,EAAEsD,MAAQtD,EAAE4B,SAAS,GAAI,UAAY5B,EAAEkD,OAAQ,CAC/E,GAAIlE,IAAM6C,EAAG,MAAM7C,EAAIsB,EAAGN,EAAE4B,IAC5B5B,EAAEuD,kBAAkBvD,EAAE4B,IACxB,KAAO,WAAa5B,EAAEkD,QAAUlD,EAAEwD,OAAO,SAAUxD,EAAE4B,KACrD5C,EAAI8C,EACJ,IAAIzB,EAAIqB,EAASZ,EAAGzB,EAAGW,GACvB,GAAI,WAAaK,EAAEsB,KAAM,CACvB,GAAI3C,EAAIgB,EAAEiD,KAAO3C,EAAI9B,EAAG6B,EAAEuB,MAAQG,EAAG,SACrC,MAAO,CACLvC,MAAOa,EAAEuB,IACTqB,KAAMjD,EAAEiD,KAEZ,CACA,UAAY5C,EAAEsB,OAAS3C,EAAIsB,EAAGN,EAAEkD,OAAS,QAASlD,EAAE4B,IAAMvB,EAAEuB,IAC9D,CACF,CACF,CACA,SAASwB,EAAoBtC,EAAGzB,GAC9B,IAAIW,EAAIX,EAAE6D,OACRlE,EAAI8B,EAAEE,SAAShB,GACjB,GAAIhB,IAAMS,EAAG,OAAOJ,EAAE8D,SAAW,KAAM,UAAYnD,GAAKc,EAAEE,SAAiB,SAAM3B,EAAE6D,OAAS,SAAU7D,EAAEuC,IAAMnC,EAAG2D,EAAoBtC,EAAGzB,GAAI,UAAYA,EAAE6D,SAAW,WAAalD,IAAMX,EAAE6D,OAAS,QAAS7D,EAAEuC,IAAM,IAAI6B,UAAU,oCAAsCzD,EAAI,aAAc+B,EAC1R,IAAIxD,EAAImD,EAAS1C,EAAG8B,EAAEE,SAAU3B,EAAEuC,KAClC,GAAI,UAAYrD,EAAEoD,KAAM,OAAOtC,EAAE6D,OAAS,QAAS7D,EAAEuC,IAAMrD,EAAEqD,IAAKvC,EAAE8D,SAAW,KAAMpB,EACrF,IAAIhB,EAAIxC,EAAEqD,IACV,OAAOb,EAAIA,EAAEkC,MAAQ5D,EAAEyB,EAAE4C,YAAc3C,EAAEvB,MAAOH,EAAEsE,KAAO7C,EAAE8C,QAAS,WAAavE,EAAE6D,SAAW7D,EAAE6D,OAAS,OAAQ7D,EAAEuC,IAAMnC,GAAIJ,EAAE8D,SAAW,KAAMpB,GAAKhB,GAAK1B,EAAE6D,OAAS,QAAS7D,EAAEuC,IAAM,IAAI6B,UAAU,oCAAqCpE,EAAE8D,SAAW,KAAMpB,EAC9P,CACA,SAAS8B,EAAapE,GACpB,IAAIqB,EAAI,CACNgD,OAAQrE,EAAE,IAEZ,KAAKA,IAAMqB,EAAEiD,SAAWtE,EAAE,IAAK,KAAKA,IAAMqB,EAAEkD,WAAavE,EAAE,GAAIqB,EAAEmD,SAAWxE,EAAE,IAAKyC,KAAKgC,WAAWC,KAAKrD,EAC1G,CACA,SAASsD,EAAc3E,GACrB,IAAIqB,EAAIrB,EAAE4E,YAAc,CAAC,EACzBvD,EAAEa,KAAO,gBAAiBb,EAAEc,IAAKnC,EAAE4E,WAAavD,CAClD,CACA,SAASU,EAAQ/B,GACfyC,KAAKgC,WAAa,CAAC,CACjBJ,OAAQ,SACNrE,EAAE+C,QAAQqB,EAAc3B,MAAOA,KAAKoC,OAAM,EAChD,CACA,SAASjC,EAAOvB,GACd,GAAIA,GAAK,KAAOA,EAAG,CACjB,IAAIzB,EAAIyB,EAAEC,GACV,GAAI1B,EAAG,OAAOA,EAAEX,KAAKoC,GACrB,GAAI,mBAAqBA,EAAE6C,KAAM,OAAO7C,EACxC,IAAKyD,MAAMzD,EAAE0D,QAAS,CACpB,IAAIxF,GAAK,EACPT,EAAI,SAASoF,IACX,OAAS3E,EAAI8B,EAAE0D,QAAS,GAAIxE,EAAEtB,KAAKoC,EAAG9B,GAAI,OAAO2E,EAAKnE,MAAQsB,EAAE9B,GAAI2E,EAAKV,MAAO,EAAIU,EACpF,OAAOA,EAAKnE,MAAQC,EAAGkE,EAAKV,MAAO,EAAIU,CACzC,EACF,OAAOpF,EAAEoF,KAAOpF,CAClB,CACF,CACA,MAAM,IAAIkF,UAAU7C,EAAQE,GAAK,mBACnC,CACA,OAAOkB,EAAkB7B,UAAY8B,EAA4BjD,EAAEsD,EAAG,cAAe,CACnF9C,MAAOyC,EACPb,cAAc,IACZpC,EAAEiD,EAA4B,cAAe,CAC/CzC,MAAOwC,EACPZ,cAAc,IACZY,EAAkByC,YAActD,EAAOc,EAA4Bf,EAAG,qBAAsBJ,EAAE4D,oBAAsB,SAAUjF,GAChI,IAAIqB,EAAI,mBAAqBrB,GAAKA,EAAEkF,YACpC,QAAS7D,IAAMA,IAAMkB,GAAqB,uBAAyBlB,EAAE2D,aAAe3D,EAAEhC,MACxF,EAAGgC,EAAE8D,KAAO,SAAUnF,GACpB,OAAOR,OAAO4F,eAAiB5F,OAAO4F,eAAepF,EAAGwC,IAA+BxC,EAAEqF,UAAY7C,EAA4Bd,EAAO1B,EAAGyB,EAAG,sBAAuBzB,EAAEU,UAAYlB,OAAOY,OAAOyC,GAAI7C,CACvM,EAAGqB,EAAEiE,MAAQ,SAAUtF,GACrB,MAAO,CACLoD,QAASpD,EAEb,EAAG8C,EAAsBG,EAAcvC,WAAYgB,EAAOuB,EAAcvC,UAAWvB,GAAG,WACpF,OAAOsD,IACT,IAAIpB,EAAE4B,cAAgBA,EAAe5B,EAAEkE,MAAQ,SAAUvF,EAAGJ,EAAGW,EAAGhB,EAAGT,QACnE,IAAWA,IAAMA,EAAI0G,SACrB,IAAIlE,EAAI,IAAI2B,EAAcpB,EAAK7B,EAAGJ,EAAGW,EAAGhB,GAAIT,GAC5C,OAAOuC,EAAE4D,oBAAoBrF,GAAK0B,EAAIA,EAAE4C,OAAOb,MAAK,SAAUrD,GAC5D,OAAOA,EAAEwD,KAAOxD,EAAED,MAAQuB,EAAE4C,MAC9B,GACF,EAAGpB,EAAsBD,GAAInB,EAAOmB,EAAGpB,EAAG,aAAcC,EAAOmB,EAAGvB,GAAG,WACnE,OAAOmB,IACT,IAAIf,EAAOmB,EAAG,YAAY,WACxB,MAAO,oBACT,IAAIxB,EAAEoE,KAAO,SAAUzF,GACrB,IAAIqB,EAAI7B,OAAOQ,GACbJ,EAAI,GACN,IAAK,IAAIW,KAAKc,EAAGzB,EAAE8E,KAAKnE,GACxB,OAAOX,EAAE8F,UAAW,SAASxB,IAC3B,KAAOtE,EAAEmF,QAAS,CAChB,IAAI/E,EAAIJ,EAAE+F,MACV,GAAI3F,KAAKqB,EAAG,OAAO6C,EAAKnE,MAAQC,EAAGkE,EAAKV,MAAO,EAAIU,CACrD,CACA,OAAOA,EAAKV,MAAO,EAAIU,CACzB,CACF,EAAG7C,EAAEuB,OAASA,EAAQb,EAAQrB,UAAY,CACxCwE,YAAanD,EACb8C,MAAO,SAAexD,GACpB,GAAIoB,KAAKmD,KAAO,EAAGnD,KAAKyB,KAAO,EAAGzB,KAAKmB,KAAOnB,KAAKoB,MAAQ7D,EAAGyC,KAAKe,MAAO,EAAIf,KAAKiB,SAAW,KAAMjB,KAAKgB,OAAS,OAAQhB,KAAKN,IAAMnC,EAAGyC,KAAKgC,WAAW1B,QAAQ4B,IAAiBtD,EAAG,IAAK,IAAIzB,KAAK6C,KAAM,MAAQ7C,EAAEiG,OAAO,IAAMtF,EAAEtB,KAAKwD,KAAM7C,KAAOkF,OAAOlF,EAAEkG,MAAM,MAAQrD,KAAK7C,GAAKI,EACtR,EACA+F,KAAM,WACJtD,KAAKe,MAAO,EACZ,IAAIxD,EAAIyC,KAAKgC,WAAW,GAAGG,WAC3B,GAAI,UAAY5E,EAAEkC,KAAM,MAAMlC,EAAEmC,IAChC,OAAOM,KAAKuD,IACd,EACAlC,kBAAmB,SAA2BzC,GAC5C,GAAIoB,KAAKe,KAAM,MAAMnC,EACrB,IAAIzB,EAAI6C,KACR,SAASwD,EAAO1F,EAAGhB,GACjB,OAAO+B,EAAEY,KAAO,QAASZ,EAAEa,IAAMd,EAAGzB,EAAEsE,KAAO3D,EAAGhB,IAAMK,EAAE6D,OAAS,OAAQ7D,EAAEuC,IAAMnC,KAAMT,CACzF,CACA,IAAK,IAAIA,EAAIkD,KAAKgC,WAAWM,OAAS,EAAGxF,GAAK,IAAKA,EAAG,CACpD,IAAIT,EAAI2D,KAAKgC,WAAWlF,GACtB+B,EAAIxC,EAAE8F,WACR,GAAI,SAAW9F,EAAEuF,OAAQ,OAAO4B,EAAO,OACvC,GAAInH,EAAEuF,QAAU5B,KAAKmD,KAAM,CACzB,IAAIzG,EAAIoB,EAAEtB,KAAKH,EAAG,YAChB2C,EAAIlB,EAAEtB,KAAKH,EAAG,cAChB,GAAIK,GAAKsC,EAAG,CACV,GAAIgB,KAAKmD,KAAO9G,EAAEwF,SAAU,OAAO2B,EAAOnH,EAAEwF,UAAU,GACtD,GAAI7B,KAAKmD,KAAO9G,EAAEyF,WAAY,OAAO0B,EAAOnH,EAAEyF,WAChD,MAAO,GAAIpF,GACT,GAAIsD,KAAKmD,KAAO9G,EAAEwF,SAAU,OAAO2B,EAAOnH,EAAEwF,UAAU,OACjD,CACL,IAAK7C,EAAG,MAAM,IAAI8B,MAAM,0CACxB,GAAId,KAAKmD,KAAO9G,EAAEyF,WAAY,OAAO0B,EAAOnH,EAAEyF,WAChD,CACF,CACF,CACF,EACAR,OAAQ,SAAgB/D,EAAGqB,GACzB,IAAK,IAAIzB,EAAI6C,KAAKgC,WAAWM,OAAS,EAAGnF,GAAK,IAAKA,EAAG,CACpD,IAAIL,EAAIkD,KAAKgC,WAAW7E,GACxB,GAAIL,EAAE8E,QAAU5B,KAAKmD,MAAQrF,EAAEtB,KAAKM,EAAG,eAAiBkD,KAAKmD,KAAOrG,EAAEgF,WAAY,CAChF,IAAIzF,EAAIS,EACR,KACF,CACF,CACAT,IAAM,UAAYkB,GAAK,aAAeA,IAAMlB,EAAEuF,QAAUhD,GAAKA,GAAKvC,EAAEyF,aAAezF,EAAI,MACvF,IAAIwC,EAAIxC,EAAIA,EAAE8F,WAAa,CAAC,EAC5B,OAAOtD,EAAEY,KAAOlC,EAAGsB,EAAEa,IAAMd,EAAGvC,GAAK2D,KAAKgB,OAAS,OAAQhB,KAAKyB,KAAOpF,EAAEyF,WAAYjC,GAAKG,KAAKyD,SAAS5E,EACxG,EACA4E,SAAU,SAAkBlG,EAAGqB,GAC7B,GAAI,UAAYrB,EAAEkC,KAAM,MAAMlC,EAAEmC,IAChC,MAAO,UAAYnC,EAAEkC,MAAQ,aAAelC,EAAEkC,KAAOO,KAAKyB,KAAOlE,EAAEmC,IAAM,WAAanC,EAAEkC,MAAQO,KAAKuD,KAAOvD,KAAKN,IAAMnC,EAAEmC,IAAKM,KAAKgB,OAAS,SAAUhB,KAAKyB,KAAO,OAAS,WAAalE,EAAEkC,MAAQb,IAAMoB,KAAKyB,KAAO7C,GAAIiB,CAC1N,EACA6D,OAAQ,SAAgBnG,GACtB,IAAK,IAAIqB,EAAIoB,KAAKgC,WAAWM,OAAS,EAAG1D,GAAK,IAAKA,EAAG,CACpD,IAAIzB,EAAI6C,KAAKgC,WAAWpD,GACxB,GAAIzB,EAAE2E,aAAevE,EAAG,OAAOyC,KAAKyD,SAAStG,EAAEgF,WAAYhF,EAAE4E,UAAWG,EAAc/E,GAAI0C,CAC5F,CACF,EACA,MAAS,SAAgBtC,GACvB,IAAK,IAAIqB,EAAIoB,KAAKgC,WAAWM,OAAS,EAAG1D,GAAK,IAAKA,EAAG,CACpD,IAAIzB,EAAI6C,KAAKgC,WAAWpD,GACxB,GAAIzB,EAAEyE,SAAWrE,EAAG,CAClB,IAAIO,EAAIX,EAAEgF,WACV,GAAI,UAAYrE,EAAE2B,KAAM,CACtB,IAAI3C,EAAIgB,EAAE4B,IACVwC,EAAc/E,EAChB,CACA,OAAOL,CACT,CACF,CACA,MAAM,IAAIgE,MAAM,wBAClB,EACA6C,cAAe,SAAuB/E,EAAGzB,EAAGW,GAC1C,OAAOkC,KAAKiB,SAAW,CACrBnC,SAAUqB,EAAOvB,GACjB4C,WAAYrE,EACZuE,QAAS5D,GACR,SAAWkC,KAAKgB,SAAWhB,KAAKN,IAAMnC,GAAIsC,CAC/C,GACCjB,CACL,CACAxC,EAAOD,QAAUwC,EAAqBvC,EAAOD,QAAQsB,YAAa,EAAMrB,EAAOD,QAAiB,QAAIC,EAAOD,O,sBC/S3G,IAEIyH,EAAS,IAFG,EAAQ,MAGxBxH,EAAOD,QAAUyH,C,sBCHjB,SAASlF,EAAQmF,GAAmV,OAAtOnF,EAArD,oBAAXtB,QAAoD,kBAApBA,OAAO0B,SAAmC,SAAiB+E,GAAO,cAAcA,CAAK,EAAsB,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXzG,QAAyByG,EAAIpB,cAAgBrF,QAAUyG,IAAQzG,OAAOa,UAAY,gBAAkB4F,CAAK,EAAYnF,EAAQmF,EAAM,CAEzX,IACIC,EADW,EAAQ,IACOA,eAE9B,SAASC,IACP,IAAK,IAAIC,EAAK,EAAGC,EAAO,CAAC,gBAAiB,QAAS,OAAQ,UAAWD,EAAKC,EAAK3B,OAAQ0B,IAAM,CAC5F,IAAIpG,EAAMqG,EAAKD,GACfhE,KAAKpC,GAAOoC,KAAKpC,GAAKC,KAAKmC,KAC7B,CAEAA,KAAKkE,QAAU,CAAC,CAClB,CAEA9H,EAAOD,QAAU4H,EAEjBA,EAAU9F,UAAUkG,cAAgB,SAAUC,GAC5C,IAAIC,EAAQD,EAAIC,MAAM,6CACtB,OAAOA,EAAQA,EAAM,QAAKC,CAC5B,EAEAP,EAAU9F,UAAUsG,MAAQ,SAAUH,GACpC,GAAmB,qBAARA,EAAX,CAIA,IACII,EADAC,EAAWzE,KAAKmE,cAAcC,GAE9BM,EAAS1E,KAAKkE,QAAQO,GAE1B,GAAKA,GAAaC,GAAWA,EAAOH,MAWpC,OAPAC,EAASE,EAAOH,MAAM/H,KAAKkI,EAAQN,EAAKN,EAAeM,QAGrDI,EAsCJ,SAA+BA,GACzBA,EAAOG,QAAgD,IAAtC5H,OAAOiG,KAAKwB,EAAOG,QAAQrC,eACvCkC,EAAOG,OAGhB,OAAOH,CACT,CA5CaI,CAAsBJ,IACxBC,SAAWC,EAAOD,UAGpBD,CAjBP,CAkBF,EAEAT,EAAU9F,UAAUJ,KAAO,SAAU6G,GAGnC,GAFA1E,KAAKkE,QAAQQ,EAAOD,UAAYC,EAE5BA,EAAOG,aACT,IAAK,IAAIxI,EAAI,EAAGA,EAAIqI,EAAOG,aAAavC,OAAQjG,GAAK,EACnD2D,KAAKkE,QAAQQ,EAAOG,aAAaxI,IAAMqI,CAG7C,EAEAX,EAAU9F,UAAUN,OAAS,SAAUmH,GACrC,GAAoB,WAAhBpG,EAAQoG,IAA8C,WAA1BpG,EAAQoG,EAAGC,WAA3C,CAIA,IAAIC,EAAKF,EAAGC,UACRJ,EAASG,EAAGH,OACZD,EAAS1E,KAAKkE,QAAQc,EAAGP,UAG7B,OAFAE,EAAoB,aAAXA,EAAwBK,EAAGL,OAASA,GAAU,CAAC,EAEpDD,IACFI,EAAGG,OAASH,EAAGG,QAAUP,EAAOQ,cAE5BR,EAAOS,QAAQjH,eAAe4G,EAAGG,SAC5BP,EAAOS,QAAQL,EAAGG,QAAQG,MAAMV,EAAQ,CAACM,EAAIjI,OAAOsI,OAAO,CAAC,EAAGV,UAJ1E,CAPA,CAgBF,C,6kDCzEMW,E,iQACJ,aAAe,IAAD,G,4FAAA,SAEZ,IAAMC,GADN,gBACwBC,aAAa,eAC/BC,EAAWC,SAASC,eAAeJ,GAAYK,QAAQC,WAAU,GAH3D,OAKG,EAAKC,aAAa,CAAEtI,KAAM,SAClCuI,YAAYN,GANP,CAOb,C,YAR2BO,c,iCCO1BC,EAAgB,CAClBC,iBAAkB,SAAUC,GAC1BC,EAAEC,KAAK,CACL5G,KAAM,MACN2E,IAAK+B,EACLG,SAAU,WACTvF,MAAK,SAACwF,GAAgB,GAC1B,EACDC,gCAAiC,SAAUL,EAAaM,GACtD,IAAIC,EAAO1G,KACX,GAAI2G,OAAOC,qBAAsB,CAAC,IAgB5BC,EAAW,IAAID,sBATnB,SAAyBE,GACvBA,EAAQxG,SAAQ,SAACyG,GACXA,EAAMC,iBACRN,EAAKR,iBAAiBC,GACtBU,EAASI,UAAUF,EAAMG,QAE5B,GACF,GAbe,CACdC,KAAM,KACNC,WAAY,QACZC,UAAW,IAabR,EAASS,QAAQ5B,SAAS6B,cAAcd,GACzC,MACCC,EAAKR,iBAAiBC,EAEzB,EACDqB,wBAAyB,SAAS9B,GAChC8B,YAAwB9B,EACzB,GAGE+B,eAAevK,IAAI,sBACtBuK,eAAexI,OAAO,oBAAqBqG,IAGzC,UAACqB,cAAD,aAAC,EAAQe,UACXf,OAAOe,OAAS,CAAC,GAEnBf,OAAOe,OAAOzB,cAAgBA,EAC9BU,OAAOe,OAAOC,WAAaA,IAC3BhB,OAAOe,OAAOE,KAAOA,IAErBxB,GAAE,WACiB,IAAIyB,IAAS,eACrBC,SACV,G,mBC1DD,SAASpJ,EAAQ5B,GAGf,OAAQV,EAAOD,QAAUuC,EAAU,mBAAqBtB,QAAU,iBAAmBA,OAAO0B,SAAW,SAAUhC,GAC/G,cAAcA,CAChB,EAAI,SAAUA,GACZ,OAAOA,GAAK,mBAAqBM,QAAUN,EAAE2F,cAAgBrF,QAAUN,IAAMM,OAAOa,UAAY,gBAAkBnB,CACpH,EAAGV,EAAOD,QAAQsB,YAAa,EAAMrB,EAAOD,QAAiB,QAAIC,EAAOD,QAAUuC,EAAQ5B,EAC5F,CACAV,EAAOD,QAAUuC,EAAStC,EAAOD,QAAQsB,YAAa,EAAMrB,EAAOD,QAAiB,QAAIC,EAAOD,O,mCCT/F,iHAGa4L,EAAqB,WAChCrC,SAASsC,iBAAiB,oBAAoB,WAC5CC,EAAwBvC,UACxB8B,EAAwB9B,SACzB,GACF,EAEYuC,EAA0B,SAACC,GACjB9B,EAAE8B,GAAIC,KAAK,2FACnBC,MAAK,WAChBhC,EAAEpG,MAAMqI,GAAG,SAAS,SAAUzJ,GAC5BwH,EAAEC,KAAK,CACL5G,KAAM,MACN2E,IAAI,UAAD,OAAYpE,KAAKsI,QAAQC,IAC5BzF,OAAO,EACP0F,KAAM,CAAED,GAAIvI,KAAKsI,QAAQC,IACzBE,WAAYC,MACX3H,MAAK,SAAUyH,GAEjB,GACF,GACF,GACF,EAEYhB,EAA0B,SAACU,GACjB9B,EAAE8B,GAAIC,KAAK,yCACnBC,MAAK,WAChBhC,EAAEpG,MAAMqI,GAAG,SAAS,SAAUzJ,GAC5BwH,EAAEC,KAAK,CACL5G,KAAM,MACN2E,IAAI,kBAAD,OAAoBpE,KAAKsI,QAAQC,GAAjC,yBACHzF,OAAO,EACP0F,KAAM,CAAED,GAAIvI,KAAKsI,QAAQC,IACzBE,WAAYC,MACX3H,MAAK,SAAUyH,GAEjB,GACF,GACF,GACF,C,qBC1CD,IAAIG,EAAW,EAAQ,IACnBC,EAAM,EAAQ,IACdC,EAAW,EAAQ,IAInBC,EAAkB,sBAGlBC,EAAYC,KAAKC,IACjBC,EAAYF,KAAKG,IAuLrB/M,EAAOD,QA/HP,SAAkBiN,EAAMC,EAAMC,GAC5B,IAAIC,EACAC,EACAC,EACAjF,EACAkF,EACAC,EACAC,EAAiB,EACjBC,GAAU,EACVC,GAAS,EACTC,GAAW,EAEf,GAAmB,mBAARX,EACT,MAAM,IAAI7H,UAAUuH,GAYtB,SAASkB,EAAWC,GAClB,IAAIC,EAAOX,EACPY,EAAUX,EAId,OAHAD,EAAWC,OAAWlF,EACtBsF,EAAiBK,EACjBzF,EAAS4E,EAAKhE,MAAM+E,EAASD,EAE/B,CAkBA,SAASE,EAAaH,GACpB,IAAII,EAAoBJ,EAAON,EAK/B,YAAwBrF,IAAjBqF,GAA8BU,GAAqBhB,GAAQgB,EAAoB,GAAKP,GAJjEG,EAAOL,GAI2FH,CAC9H,CAEA,SAASa,IACP,IAAIL,EAAOrB,IAEX,GAAIwB,EAAaH,GACf,OAAOM,EAAaN,GAItBP,EAAUc,WAAWF,EAxBvB,SAAuBL,GACrB,IAEIQ,EAAcpB,GAFMY,EAAON,GAG/B,OAAOG,EAASZ,EAAUuB,EAAahB,GAFbQ,EAAOL,IAEuCa,CAC1E,CAmBqCC,CAAcT,GACnD,CAEA,SAASM,EAAaN,GAIpB,OAHAP,OAAUpF,EAGNyF,GAAYR,EACPS,EAAWC,IAGpBV,EAAWC,OAAWlF,EACfE,EACT,CAeA,SAASmG,IACP,IAAIV,EAAOrB,IACPgC,EAAaR,EAAaH,GAK9B,GAJAV,EAAWsB,UACXrB,EAAWxJ,KACX2J,EAAeM,EAEXW,EAAY,CACd,QAAgBtG,IAAZoF,EACF,OAtEN,SAAqBO,GAMnB,OAJAL,EAAiBK,EAEjBP,EAAUc,WAAWF,EAAcjB,GAE5BQ,EAAUG,EAAWC,GAAQzF,CACtC,CA+DasG,CAAYnB,GAGrB,GAAIG,EAIF,OAFAiB,aAAarB,GACbA,EAAUc,WAAWF,EAAcjB,GAC5BW,EAAWL,EAEtB,CAMA,YAJgBrF,IAAZoF,IACFA,EAAUc,WAAWF,EAAcjB,IAG9B7E,CACT,CAIA,OA5GA6E,EAAOR,EAASQ,IAAS,EAErBV,EAASW,KACXO,IAAYP,EAAQO,QAEpBJ,GADAK,EAAS,YAAaR,GACHP,EAAUF,EAASS,EAAQG,UAAY,EAAGJ,GAAQI,EACrEM,EAAW,aAAcT,IAAYA,EAAQS,SAAWA,GAoG1DY,EAAUK,OAxCV,gBACkB1G,IAAZoF,GACFqB,aAAarB,GAGfE,EAAiB,EACjBL,EAAWI,EAAeH,EAAWE,OAAUpF,CACjD,EAkCAqG,EAAUM,MAhCV,WACE,YAAmB3G,IAAZoF,EAAwBlF,EAAS+F,EAAa3B,IACvD,EA+BO+B,CACT,C,qBC/LA,IAIIO,EAJO,EAAQ,IAIA9N,OACnBhB,EAAOD,QAAU+O,C,qBCLjB,SAASxM,EAAQmF,GAAmV,OAAtOnF,EAArD,oBAAXtB,QAAoD,kBAApBA,OAAO0B,SAAmC,SAAiB+E,GAAO,cAAcA,CAAK,EAAsB,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXzG,QAAyByG,EAAIpB,cAAgBrF,QAAUyG,IAAQzG,OAAOa,UAAY,gBAAkB4F,CAAK,EAAYnF,EAAQmF,EAAM,CAEzX,IAAIsH,EAAa,EAAQ,IAIrBC,EAA0E,WAA9C,qBAAT1E,KAAuB,YAAchI,EAAQgI,QAAsBA,MAAQA,KAAK3J,SAAWA,QAAU2J,KAGxHS,EAAOgE,GAAcC,GAAY3M,SAAS,cAATA,GACrCrC,EAAOD,QAAUgL,C,kCCVjB,sCAAIkE,EAAK,WACP,OAAOA,EAAKtO,OAAOsI,QAAU,SAAUvH,GACrC,IAAK,IAAIP,EAAGlB,EAAI,EAAGuC,EAAIiM,UAAUvI,OAAQjG,EAAIuC,EAAGvC,IAC9C,IAAK,IAAIc,KAAKI,EAAIsN,UAAUxO,GAC1BU,OAAOkB,UAAUC,eAAe1B,KAAKe,EAAGJ,KAAOW,EAAEX,GAAKI,EAAEJ,IAI5D,OAAOW,CACT,EAAGuN,EAAGjG,MAAMpF,KAAM6K,UACpB,EAEA,SAAStN,EAAEO,EAAGP,EAAGlB,GACf,GAAIA,GAAK,IAAMwO,UAAUvI,OAAQ,IAAK,IAAI1D,EAAGzB,EAAI,EAAG0B,EAAItB,EAAE+E,OAAQnF,EAAI0B,EAAG1B,KACtEyB,GAAKzB,KAAKI,IAAMqB,IAAMA,EAAI0M,MAAMrN,UAAUoF,MAAM7G,KAAKe,EAAG,EAAGJ,IAAKyB,EAAEzB,GAAKI,EAAEJ,IAE5E,OAAOW,EAAEyN,OAAO3M,GAAK0M,MAAMrN,UAAUoF,MAAM7G,KAAKe,GAClD,CAEA,SAASlB,EAAEyB,GACT,OAAOwN,MAAMrN,UAAUoF,MAAM7G,KAAKsB,EACpC,CAEA,SAASc,IACP,OAAO4M,KAAK5C,KACd,CAEA,SAASzL,EAAEW,EAAGP,EAAGlB,GACf,GAAIkB,EAAI,oBAAsBA,EAAG,OAASlB,EAAG,OAAOyB,EAAE2N,gBAAgBlO,GACtEO,EAAE4N,aAAanO,EAAGlB,GAAK,GACzB,CAEA,SAASwC,EAAEf,EAAGP,GACZ,OAAOA,EAAIA,GAAKmI,SAAU,mBAAqB5H,IAAMA,EAAIA,EAAEP,IAAK+N,MAAMK,QAAQ7N,GAAKA,EAAI,iBAAmBA,EAAIzB,EAAEkB,EAAEqO,iBAAiB9N,IAAMA,aAAakI,YAAc,CAAClI,GAAKA,aAAa+N,SAAWxP,EAAEyB,GAAK,EAC3M,CAEA,SAAShB,EAAEgB,GACTA,EAAEgO,MAAQhO,EAAIA,EAAEgO,KAAMhO,EAAEiO,aAAejO,EAAEkO,kBAAoBlO,EAAEmO,gBACjE,CAEA,SAASjN,EAAElB,GACTA,EAAEgO,MAAQhO,EAAIA,EAAEgO,KAAMhO,EAAEoO,iBAAmBpO,EAAEoO,iBAC/C,CAEA,SAAS9N,IACP,IAAIN,EAAI,GACR,MAAO,CACLqO,IAAK,SAAa5O,EAAGlB,EAAGuC,EAAGzB,GACzBI,EAAE6O,YAAc7O,EAAE6O,YAAYxN,GAAKrB,EAAEyK,iBAAiB3L,EAAGuC,EAAGzB,GAAIW,EAAEmE,KAAK,CAAC1E,EAAGlB,EAAGuC,EAAGzB,GACnF,EACAkP,MAAO,SAAevO,EAAGP,EAAGlB,EAAGuC,GAC7BoB,KAAKmM,IAAIrO,EAAGP,EAAG,SAAUO,GACvB,OAAO,SAAUP,GACfA,EAAE+O,cAAgB/O,EAAIA,EAAE+O,aACxB,IAAIjQ,EAAIkB,EAAEgP,gBAAkB,GACxB3N,EAAIrB,EAAEiP,eAAiB,GACvBrP,EAAII,EAAEkP,QAAUlP,EAAEkP,OAAOC,EAAInP,EAAEkP,OAAS,KAC5C,OAAO3O,EAAE,CACPyK,GAAIpL,EAAIA,EAAEwP,WAAaxP,EAAEwP,WAAa,IAAM/N,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAG+N,WAAa,IAAM,IAClFC,UAAWzP,EAAIA,EAAEwP,WAAaxP,EAAEwP,WAAa,IAAMtQ,EAAE,GAAKA,EAAE,GAAKA,EAAE,GAAGsQ,WAAa,IAAM,IACzFb,IAAKvO,EACLmP,EAAGvP,GAAKA,EAAEuP,EAAIvP,EAAEuP,EAAI9N,EAAE,GAAKA,EAAE,GAAGiO,QAAU1P,EAAIA,EAAEuP,EAAInP,EAAEuP,MACtDjN,EAAG1C,GAAKA,EAAE0C,EAAI1C,EAAE0C,EAAIjB,EAAE,GAAKA,EAAE,GAAGmO,QAAU5P,EAAIA,EAAE0C,EAAItC,EAAEyP,OAE1D,CACF,CAde,CAcb3Q,GAAIuC,EACR,EACAqO,MAAO,WACLnP,EAAEwC,SAAQ,SAAUxC,GAClBA,EAAE,GAAGoP,eAAiBpP,EAAE,GAAGoP,eAAepP,EAAE,IAAMA,EAAE,GAAGqP,oBAAoBrP,EAAE,GAAIA,EAAE,GAAIA,EAAE,GAC3F,IAAIA,EAAI,EACV,EAEJ,CAEA,SAASpB,EAAEoB,EAAGP,EAAGlB,GACf,OAAO2M,KAAKG,IAAIH,KAAKC,IAAInL,EAAGP,GAAIlB,EAClC,CAEA,SAASM,EAAEmB,GACT,OAAQA,EAAI,EAAI,EAAI,IAAMA,EAAI,EAAI,EAAI,KAAOA,CAC/C,CAEA,SAASxB,EAAEwB,GACT,OAAOA,EAAEsP,uBACX,CAEA,SAASxN,EAAE9B,EAAGP,EAAGlB,EAAGuC,GAClB,IAAIzB,EAAIW,GAAKA,EAAEP,GACf,OAAO,MAAQJ,EAAId,EAAIuC,GAAK,mBAAqBzB,EAAIA,IAAMA,CAC7D,CAEA,SAASgB,EAAEL,GACT,OAAOkL,KAAKqE,MAAM,IAAMvP,GAAK,GAC/B,CA4DA,SAASrB,EAAEqB,GACT,IAAIzB,EACAc,EACA0B,EACA/B,EACAkC,EACAZ,EACA9B,EACA4D,EACAzD,EACAkD,EACAS,EACAkN,EACAZ,EACA7M,EAAI,IACJ0N,EAAI,GACJC,EAAI,KACJC,EAAI,EAER,SAASC,EAAE5P,GACT6P,EAAEF,EAAI3P,EACR,CAEA,SAAS8P,EAAE9P,GACT,IAAIP,EAAIsQ,EAAEJ,EAAI3P,GAAGgQ,IACjB,OAAOC,EAAExQ,GAAKA,EAAI,IACpB,CAEA,SAASsQ,EAAE/P,GACT,IAAIzB,EAAI2M,KAAKgF,MAAMhF,KAAK8E,IAAIhQ,EAAIX,IAC5ByB,GAAKd,EAAIX,EAAIA,GAAKA,EAClB0B,EAAIlC,EAAEmB,GACNhB,EAAIR,EAAE2R,QAAQ1Q,EAAE,GAAIjB,GAAG,GAAI4R,QAAO,SAAUpQ,EAAGP,GACjD,OAAOyL,KAAK8E,IAAIvQ,EAAIqB,GAAKoK,KAAK8E,IAAIhQ,EAAIc,GAAKrB,EAAIO,CACjD,KACIkB,EAAIlC,EACR,OAAO+B,EAAI,GAAK,IAAMD,GAAKvC,IAAKS,IAAMsB,IAAMY,EAAI,EAAG3C,GAAKwC,EAAI,EAAI,GAAK,GAAI,CACvEiP,IAAK9O,EAAI3C,EAAI+B,EAAIS,EACjBsP,OAAQrR,EACRsR,IAAKpP,EAET,CAEA,SAASqP,EAAEvQ,EAAGP,EAAGlB,GACf,IAAIuC,EACJ,GAAIrB,IAAM+Q,IAAK,OAAOC,EAAEzQ,EAAGzB,GAC3B,IAAK0R,EAAEjQ,GAAI,OAAO,KAClB,IAAIX,EAAI0Q,EAAE,MAAQxR,EAAIA,EAAIoR,GACtB5O,EAAI1B,EAAE2Q,IACNhR,EAAIgB,EAAIX,EAAEiR,IACVpP,EAAIH,EAAI/B,EACZ8B,EAAI2P,EAAEvP,GACN,IAAItC,EAAI6R,EAAEvP,EAAIZ,EAAI4K,KAAKwF,KAAK1R,IAC5B,OAAQ,OAASJ,GAAKsM,KAAK8E,IAAIpR,GAAKsM,KAAK8E,IAAIlP,IAAM,OAASA,KAAOA,EAAIlC,GAAIyB,EAAES,EAC/E,CAEA,SAAS2P,EAAEzQ,EAAGP,GACZ,GAAI,MAAQA,IAAMA,EAAIY,EAAEsP,KAAMM,EAAEjQ,IAAM,OAASA,EAAG,OAAO,KACzDA,EAAIkL,KAAKqE,MAAMvP,GACf,IAAIzB,EAAIwR,EAAEtQ,GACNqB,EAAIvC,EAAEyR,IACNjP,EAAIxC,EAAE+R,IACNtR,EAAIT,EAAE8R,OACNnP,EAAIyP,EAAE3Q,GACNpB,GAAKa,EAAIJ,EAAIA,GAAKA,EAClBR,EAAIL,EAAEQ,GACN8C,EAAIoJ,KAAKgF,OAAOlQ,GAAKc,EAAIC,IAAMT,GAAKjB,EACxC,OAAOgB,EAAExB,EAAID,EAAIC,EAAIL,EAAE0C,GAAKY,GAAK9C,IAAMsB,EAAIjB,EAAI,GACjD,CAEA,SAAS4Q,EAAEjQ,GACT,OAAO4Q,EAAE5Q,KAAOA,CAClB,CAEA,SAAS4Q,EAAE5Q,GACT,OAAOpB,EAAEoB,EAAGoC,EAAGzD,EACjB,CAEA,SAAS6R,IACP,OAAOxR,EAAE6R,IACX,CAEA,SAASF,EAAE3Q,GACT,OAAQA,EAAIM,EAAIA,GAAKA,CACvB,CAEA,SAASuP,EAAEpQ,GACT,IAAIlB,EACJA,EAAIkB,EAAIkQ,EAAGF,EAAEtL,KAAK,CAChB2M,SAAUvS,EACVwS,UAAWjQ,MACT2O,EAAEjL,OAAS,IAAMiL,EAAIA,EAAElK,OAAO,IAAKoK,EAAIzE,KAAKqE,MAAM,IAAM9P,GAAK,IACjE,IAAIJ,EAAI2R,IAAIhB,IAEZ,GAAI3Q,IAAMqQ,EAAG,CACX,IAAI3O,EAAI,OAAS2O,EACjBA,EAAIrQ,EAAG0B,GAAKf,EAAEiR,KAAK,eACrB,CACF,CAEA,SAASD,EAAEvR,GACT,IAAIqB,EAAIrB,EAAI,KAAO,WACjB,GAAIa,EAAG,CACL,IAAIN,EAAIwQ,IACJ/Q,EAAIO,GAAK2P,EAAItQ,EAAIA,GAAKA,EAAIsQ,EAC1BpR,GAAKyB,EAAI2P,EAAItQ,EAAIsQ,GAAKzO,EAAE,GAAG,GAC3BJ,EAAI,GAAKvC,EAAI,GAAKyB,EAAIX,EAAI6L,KAAK8E,IAAIzR,GAAKA,GACxCK,EAAI,EACJJ,EAAIuR,EAAEJ,GACN7N,EAAItD,EAAEwR,IACN3P,EAAI7B,EAAE8R,IACNvO,EAAIb,EAAEb,GAAG,GACToP,EAAIvO,EAAEgQ,KAAI,SAAUzR,EAAGlB,GACzB,IAAIwC,EAAID,EAAIlC,GACXmC,EAAI,EAAItB,EAAE,IAAMsB,EAAI,KAAOA,IAAMmK,KAAK8E,IAAIjP,GAAK1B,EAAI,GAAKW,EAAIX,EAAI,GAAKR,GAAGkC,IACzE,IAAIG,EAAI3C,EAAI8B,EACR7B,EAAI0M,KAAKwF,KAAKxP,GACdkB,EAAIlB,EAAIY,EACZ9B,KAAO,IAAMxB,GAAKuC,EAAIgB,IAAMK,GAAK9B,GAAI,IAAM9B,GAAKuC,EAAIgB,IAAMK,GAAK9B,GAAI,OAASuB,GAAKO,EAAIP,IAAMd,GAAK1B,GAAI,OAASiD,GAAKF,EAAIE,IAAMvB,GAAK1B,IACjI,IAAIV,EAAIoC,EAAItB,EAAE,GAAKA,EAAE,GACjB+P,EAAItE,KAAKC,IAAIpK,GAAK,GAAKpC,GAAK,EAAI,EAAIA,EAAI,GAAKoC,EAAI,EAAI,EAAIA,EAAI,EAAImK,KAAKG,IAAI,GAAI5L,EAAE,GAAKsB,GAAKtB,EAAE,KAAO,EAAIsB,GAAKtB,EAAE,GAAI,GACtH,OAAOb,GAAKa,EAAE,GAAKA,EAAE,GAAI,CACvBuQ,IAAK5N,EACL0O,SAAU9R,EAAEmS,KAAO,EAAIpQ,EAAI,EAAItB,EAAE,GAAKsB,EACtCqQ,QAAS5B,EACT6B,KAAM5R,EAAE,GAEZ,IACA,OAAOqC,EAAI8O,EAAE9O,GAAIzB,EAAIsQ,EAAE7O,GAAI,CACzBkO,IAAKY,EAAE9O,GACP0C,OAAQzD,EACRoK,IAAKyD,EACL0C,OAAQ3S,EACR0M,IAAKmE,EACL+B,OAAQnP,EACRoP,SAAU7B,EACV8B,SAAUzR,EAAIP,EAAIJ,EAAIsQ,EAAI5O,EAC1BuP,IAAKjQ,EACLqR,OAAQjC,EAEZ,CACF,CAxCmB,GAyCnB,OAAOlR,EAAEoT,QAAU7Q,EAAGd,EAAEiR,KAAK,kBAAmBnQ,CAClD,CAEA,OAAOvC,EAAI,CACTqT,SAAUjB,EACVtC,IAAKuB,EACL+B,QAAS,KACTE,UAAW/B,EACXgC,UAAWvB,EACXwB,KAAM,SAActS,GAClB,GAAI,WACF,GAAIT,EAAIgB,EAAEwL,QAAStK,GAAKlC,EAAEgT,aAAe,IAAId,KAAI,SAAUlR,GACzD,MAAO,CAAC8B,EAAE9B,EAAG,OAAQ,GAAI8B,EAAE9B,EAAG,UAAW,GAAI8B,EAAE9B,EAAG,SAAU,GAC9D,IAAIM,EAAIY,EAAEsD,OAAQ,CAChBnF,EAAIgB,EAAEa,EAAEkP,QAAO,SAAUpQ,EAAGP,GAC1B,OAAOO,EAAIP,EAAE,GAAKA,EAAE,EACtB,GAAG,IACH,IAAIA,EAAIa,EAAI,EACZS,EAAIV,EAAEhB,EAAI6B,EAAE,GAAG,GAAKA,EAAEzB,GAAG,GAAKyB,EAAEzB,GAAG,GAAKyB,EAAEzB,GAAG,KAAMjB,EAAI0C,EAAEkP,QAAO,SAAUpQ,EAAGP,GAC3E,IAAKO,EAAG,MAAO,CAAC,GAChB,IAAIzB,EAAI2C,EAAElB,EAAEwE,OAAS,GACjB1D,EAAId,EAAEA,EAAEwE,OAAS,IAAMjG,EAAE,GAAKA,EAAE,IAAMA,EAAE,GAC5C,OAAOuC,GAAKrB,EAAE,GAAIO,EAAEA,EAAEwE,OAAS,GAAK1D,IAAMA,EAAId,EAAEA,EAAEwE,OAAS,IAAKxE,EAAEmE,KAAKrD,GAAId,CAC7E,GAAG,OAAOmE,KAAK9E,EACjB,CACF,CAfI,IAeEiB,EAAG,OAAO0Q,GAAE,GAClB,IAAIzS,GACH,WACC,IAAIkB,EAAIO,EAAEwL,QAAQyG,MACd1T,EAAIyB,EAAEwL,QAAQqF,KAClBhP,EAAIO,EAAI7D,EAAIuD,EAAEvD,EAAG,OAAO,KAAU,EAAG+D,EAAI3D,EAAIJ,EAAIuD,EAAEvD,EAAG,MAAOwD,GAAKb,EAAEsD,OAAS,EAC7E,IAAI1D,EAAIgB,EAAErC,EAAG,MAAO,MAChBJ,EAAIyC,EAAErC,EAAG,MAAO,MACpBqB,IAAMsB,EAAItB,GAAIzB,IAAMV,EAAIU,GAAImQ,EAAIpN,KAAM,IAASA,EAAIpC,EAAEkS,MAAMJ,UAAU1P,GAAK,GAAG,EAAI,GAAIwM,EAAIjQ,IAAMoD,EAAIpD,EAAI4R,EAAE5R,GAAG,EAAI,GAAI,OAASU,IAAMiD,EAAI3D,GAAImD,EAAErC,EAAG,SAAS,IAAOd,IAAMoD,GAAK,IAAMb,EAAEyP,EAAEhS,IAAI,KAAOiQ,GAAK,EAAI1N,EAAEyP,EAAEhS,IAAI,GAAIA,EAAImR,EAAElB,IAAKY,EAAInP,EAAEmP,GAAIZ,EAAIvO,EAAEuO,EAClP,CAPC,GAOIrQ,EAAIkB,EAAG0S,OAAO5T,KAAOA,EAAIqR,EAAEa,EAAEG,EAAEnR,KAAOuR,GAC7C,EACAoB,GAAIvC,EACJwC,SAAU,WACR,IAAIrS,EAAIc,IACJrB,EAAIgQ,EAAEW,QAAO,SAAU3Q,EAAGlB,GAC5B,IAAIuC,EAAIvC,EAAEuS,SACNzR,EAAId,EAAEwS,UACV,OAAO/Q,EAAIX,EAAI,MAAQR,EAAEiC,KAAOjC,EAAEY,EAAEqR,WAAarR,EAAEqR,WAAarR,EAAI,CAClEqR,SAAU,EACVwB,cAAe,EACfnG,KAAM,IACJ1M,EAAE0M,OAAS1M,EAAEqR,UAAYhQ,GAAIrB,EAAE6S,gBAAkB7S,EAAE0M,MAAQ9M,EAAII,EAAE6S,eAAgB7S,EAAE6S,cAAgBjT,GAAII,CAC7G,GAAG,CACDqR,SAAU,EACVwB,cAAe,EACfnG,KAAM,IAER,OAAO1M,EAAEqR,SAAWrR,EAAE0M,MAAQ,CAChC,EAEJ,CAEA,SAAStK,EAAE7B,GACT,IAAIP,EAAGlB,EAAGuC,EAAGzB,EAAG0B,EAAG/B,EAAGkC,EAEtB,SAASZ,EAAEN,GACT,OAAO,EAAIA,CACb,CAEA,SAASxB,EAAEwB,GACT,OAAOpB,EAAEoB,EAAGhB,EAAGkC,EACjB,CAEA,SAASY,EAAE9B,GACT,OAAO,EAAIkL,KAAKqH,IAAI,EAAIvS,EAAG,EAC7B,CAEA,SAASK,IACPwB,IACA,IAAIpC,EAAI,cAAgBO,EAAEwL,QAAQ9L,KAC9BnB,EAAIyB,EAAEkS,MACNlT,EAAIT,EAAE8T,WACVvR,EAAIjC,EAAEG,GACN,IAAIkC,EAAIlB,EAAEkS,MAAMP,QACZ/S,EAAI,GAER,GAAII,IAAMS,EAAG,CACX,IAAIY,EAAI+B,EAAEpD,GACNL,EAAI0B,EAAEmS,KACNlQ,EAAIjC,EAAEoS,IAEV,GAAInQ,EAAIhC,EAAEgC,GAAI3D,GAAKmC,EAAGrB,EAAG,CACvB,IAAI+P,EAAIjR,EAAEuT,UAAUvT,EAAEsT,UAAUlT,IAAI,GACpC6Q,IAAM7Q,EAAI6Q,EACZ,CAEA5Q,EAAEuF,KAAK,CACL2M,SAAUnS,EACV+T,SAAUpQ,EACVqQ,OAAQ7Q,IAEV,IAAI8M,EAAI1N,EAAEsQ,SACNzP,EAAI6M,EAAIjQ,EAEZ,GAAIoD,EAAI1C,GAAK0C,EAAIhB,EAAG,CAClB,IAAI0O,EAAI1N,EAAI1C,EAAIA,EAAIuP,EAAI7N,EAAI6N,EACxBc,EAAI,EACJC,EAAI3Q,EAER,GAAIH,EAAE4Q,KAAO3O,EAAG,CACd,IAAI8O,EAAI1E,KAAKG,IAAIH,KAAK8E,IAAIP,GAAKvE,KAAK8E,IAAIrR,GAAI,GACxCmR,EAAI,SAAU9P,GAChB,OAAO,EAAIkL,KAAKqH,IAAI,EAAIvS,EAAG,EAAI,EACjC,CAFQ,CAEN4P,GAAKtN,EAEP1D,EAAE,GAAGgU,UAAY9C,EAAGH,EAAI3Q,GAAK,EAAI4Q,EACnC,MAAOhR,EAAE,GAAGgU,UAAY,EAAGlD,GAAKD,EAEhC,IAAIM,EAAI3N,EAAEuN,EAAG,KACTY,EAAIR,EAAEyC,KAAO1R,EACjBd,EAAEwL,QAAQqH,aAAejU,EAAEuF,KAAK,CAC9B2M,SAAUP,EACVmC,SAAUpS,EAAEyP,EAAE0C,KACdE,OAAQ7Q,IACNlD,EAAEuF,KAAK,CACT2M,UAAWP,EAAIb,EACfgD,SAAU,IACVC,OAAQ7Q,IAEZ,CAEA9B,EAAE8S,SAASC,MAAMnU,EACnB,MAAOoB,EAAEgT,UAAUxU,EAAE0C,EAAE8O,MAAM,EAAI,CAC/B0C,SAAU,IACVC,OAAQ,SAAgB3S,GACtB,OAAO,IAAMA,EAAIA,EAAIA,EAAIA,EAAIA,CAC/B,GAEJ,CAEA,SAASoC,EAAEpC,EAAGP,QACZ,IAAWA,IAAMA,EAAI,KACrB,IAAIlB,EAAI,QAAUyB,EAAIkL,KAAK8E,IAAIhQ,IAAMP,EACrC,MAAO,CACL+S,KAAMtH,KAAKqH,IAAIvS,EAAG,GAAKzB,EACvBkU,IAAKzS,EAAIzB,EAEb,CAEA,SAASI,IACP,IAAIc,EAAIO,EAAEkS,MAAMP,QAChBlS,IAAMJ,EAAII,EAAE4L,IAAKtK,EAAItB,EAAE0L,IAAKnM,EAAIS,EAAE8R,OAAQrQ,EAAIzB,EAAE6R,OAClD,CAEA,SAASzP,IACP7B,EAAE8S,SAAStN,MACb,CAEAxF,EAAEuK,GAAG,UAAW5L,GAAIqB,EAAEuK,GAAG,iBAAkB5L,GAAIqB,EAAEuK,GAAG,UAAW5L,GAAIqB,EAAEuK,GAAG,eAAe,WACrF1I,IAAKpC,EAAIlB,EAAIyB,EAAEkS,MAAMP,QAAQ3B,GAC/B,IAAIhQ,EAAEuK,GAAG,aAAa,WACpB,IAAIzJ,EAAId,EAAEwL,QAAQ9L,KAClB,SAAWoB,GAAK,WACd,IAAIA,EAAId,EAAEkS,MACNlT,EAAIgB,EAAEkS,MAAMP,QACZzQ,EAAIlC,EAAEwS,SACNlR,EAAIzB,EAAEiC,EAAEuR,aACXnR,EAAIH,GAAKG,EAAI7B,KAAOiB,EAAI,GACzB,IAAI1B,EAAIa,EAAIa,EACZ,IAAMtB,EAAE0S,OAAO5Q,EAAE8Q,SAAShT,IAAIwS,UAAYxS,GAAK0B,GAAIb,IAAMlB,IAAMK,EAAIL,GAAIM,EAAEiC,EAAEgR,UAAUlT,GAAG,MAAS0B,IAAM1B,GAAK0B,GAAI1B,EAAIJ,EAAEI,GACtH,IAAIkD,EAAIhB,EAAEgR,UAAUlT,GAAG,GACvBoB,EAAE8S,SAASC,MAAM,CAAC,CAChBjC,SAAUhP,EACV4Q,SAAU,IACVC,OAAQ,SAAgB3S,GACtB,OAAO,IAAMA,EAAIA,EAAIA,EAAIA,EAAIA,CAC/B,IAEJ,CAhBgB,GAgBX,SAAWc,GAAK,cAAgBA,GAAKT,GAC5C,IAAIL,EAAEuK,GAAG,WAAW,WAClBhM,EAAIyB,EAAEkS,MAAMP,QAAQ3B,GACtB,GACF,CAEA,SAAS1N,EAAEtC,GACT,IAAIP,EACAlB,EACAuC,EACAtC,EACAsD,EACAzB,EACA+B,EACAzD,EACAkD,EACAS,EACAkN,EACAZ,EACA7M,EACA0N,EACAC,EACAC,EACAC,EACAE,EACAC,EAAIzP,IAER,SAASiQ,EAAExP,GACT,GAAIV,GAAK1B,IAAMoC,EAAE0J,GAAI,CACnB,IAAInK,EAAIkQ,EAAEzP,GAEV,GAAIc,EAAG,CACL,IAAK+O,EAAE7P,GAAI,OAAOkP,EAAElP,GACpBuB,EAAIhC,EAAGuB,GAAI,EAAI7B,EAAEiR,KAAK,cACxB,CAEA,GAAItB,EAAG,OAAOrN,EAAIhC,EAClBtB,EAAE+B,GAEF,IAAIgB,EAAI,SAAUtC,GAChB,GAAImQ,KAAM,KAAUE,IAAM,IAAO,OAAOrQ,EACxC,IAAIqB,EAAId,EAAEkS,MAAMP,QACZtS,EAAIyB,EAAE0D,OACNzD,EAAID,EAAE0Q,SACNxS,EAAIJ,EAAEa,EAAGmQ,EAAI7O,EAAG+O,EAAI/O,GACxB,GAAI,IAAM1B,EAAG,OAAO,EACpB,IAAKW,EAAEwL,QAAQqH,WAAY,OAAO7T,EAClC,GAAI+B,GAAK+O,GAAK/O,GAAK6O,EAAG,OAAOnQ,EAC7B,GAAIsB,EAAI6O,GAAKrR,EAAI,GAAKwC,EAAI+O,GAAKvR,EAAI,EAAG,OAAOkB,EAC7C,IAAIyB,GAAKH,EAAI6O,EAAI7O,EAAI6O,EAAI7O,EAAI+O,GAAKzQ,EAC9BiB,EAAI9B,EAAIa,EACRR,EAAIqM,KAAK8E,IAAI9O,EAAIZ,GACjBD,EAAI6K,KAAKC,IAAI,EAAG,EAAItM,EAAIiD,EAAI,GAChC,OAAOzB,EAAIA,EAAIZ,CACjB,CAfQ,CAeN2C,EAAEE,EAAIhC,GAAK9B,EAAIsC,GAEjBvC,EAAIM,EAAEkD,GACN,IAAI0N,EAAIzP,EAAEkS,MAAMP,QAAQH,UACvB/B,EAAIG,GAAKH,EAAIK,GAAKL,IAAMG,GAAKrR,EAAI,GAAKkR,IAAMK,GAAKvR,EAAI,IAAM2C,EAAEH,GAAIyO,GAAKzN,GAAI6M,GAAK1D,KAAK8E,IAAIR,EAAIhR,GAAK,IAAMoQ,GAAI,EAAIvP,EAAEI,EAAG,QAAS,KAAMO,EAAEkS,MAAM7D,IAAItM,GAAIO,EAAIhC,EAAGN,EAAEiR,KAAK,UACpK,CACF,CAEA,SAASR,EAAEhR,IACRY,GAAKL,EAAEkS,MAAMP,SAAW3R,EAAEkS,MAAMP,QAAQnN,SAAWoK,GAAI,EAAIY,EAAI,EAAGnP,GAAI,EAAIwB,GAAI,EAAIlD,EAAIc,EAAEgL,GAAImG,EAAEnR,GAAI6C,EAAIkO,EAAE/Q,GAAIO,EAAEiR,KAAK,eACtH,CAEA,SAAShB,EAAE1R,GACT8B,GAAK1B,IAAMJ,EAAEuQ,YAAczP,EAAEI,EAAG,QAAS,MAAOY,GAAI,EAAIL,EAAEiR,KAAK,aACjE,CAEA,SAASL,EAAE5Q,GACT,IAAIP,EAAIkR,IACJpS,EAAIkB,EAAIO,EAAE+B,EAAI/B,EAAE4O,EAChB9N,EAAIrB,EAAIO,EAAE4O,EAAI5O,EAAE+B,EAChB1C,OAAI,IAAW0C,QAAK,IAAW0N,GAAKvE,KAAK8E,IAAIP,EAAI3O,IAAMoK,KAAK8E,IAAIjO,EAAIxD,GACxE,OAAOwD,EAAIxD,EAAGkR,EAAI3O,EAAGzB,CACvB,CAEA,SAASmR,EAAExQ,GACT,OAAO2Q,IAAM3Q,EAAE+B,EAAI/B,EAAE4O,CACvB,CAEA,SAAS+B,IACP,OAAO3Q,EAAEwL,QAAQyH,QACnB,CAEA,SAASpD,IACPrR,EAAIwB,EAAEqR,KAAMvP,EAAI6O,IAAM9H,OAAOqK,YAAcrK,OAAOsK,WAClD,IAAI1T,EAAIO,EAAEkS,MAAMP,QAChBlS,IAAMmQ,EAAInQ,EAAE4L,IAAKyE,EAAIrQ,EAAE0L,IACzB,CAEA,SAAS6F,IACP,GAAIjB,EAAEZ,QAASnP,EAAEwL,QAAQ4H,OAASpT,EAAEwL,QAAQ6H,SAAU,CACpD,IAAI9U,EACJA,EAAIyB,EAAEwL,QAAQ8H,WAAa,EAAGlR,EAAI,mBAAqB7D,EAAIA,EAAI,SAAUyB,GACvE,OAAOA,EAAIzB,CACb,EAAGuC,EAAId,EAAEwL,QAAQ2F,KAAO,EAAI,EAAGtB,IAAKpQ,EAAIO,EAAEuT,UAAW,WACnD,IAAIvT,EAAI,6BACRe,EAAE,IAAI0M,OAAOzN,EAAG,WAAWyN,OAAOzN,EAAG,YAAaP,GAAGyR,KAAI,SAAUlR,GACjE+P,EAAE1B,IAAIrO,EAAG,YAAakB,GAAI6O,EAAE1B,IAAIrO,EAAG,aAAckB,EACnD,GACF,CALqD,GAKhD6O,EAAE1B,IAAI5O,EAAG,aAAa,SAAUO,GACnChB,EAAEgB,EACJ,IAAI+P,EAAExB,MAAM9O,EAAG,cAAegR,GAAIV,EAAExB,MAAM9O,EAAG,SAAU8Q,GAAIR,EAAExB,MAAM9O,EAAG,YAAawQ,GAAIF,EAAExB,MAAM9O,EAAG,YAAagR,GAAIV,EAAExB,MAAM9O,EAAG,YAAa8Q,GAAIR,EAAExB,MAAM9O,EAAG,aAAcwQ,GAAIF,EAAExB,MAAM9O,EAAG,UAAWwQ,GAAIF,EAAExB,MAAM9O,EAAG,aAAcgR,EAAG,CAChO+C,SAAS,IACPzD,EAAExB,MAAM9O,EAAG,YAAa8Q,EAAG,CAC7BiD,SAAS,IACPzD,EAAExB,MAAM9O,EAAG,WAAYwQ,GAAIF,EAAExB,MAAM9O,EAAG,cAAewQ,GAAIF,EAAE1B,IAAIxF,OAAQ,SAAS,SAAU7I,GAC5FK,GAAKrB,EAAEgB,EACT,IACA,IAAIX,EAAI,8BACR0B,EAAE,IAAI0M,OAAOpO,EAAG,WAAWoO,OAAOpO,EAAG,YAAaW,EAAEuT,WAAWrC,KAAI,SAAUlR,GAC3E,OAAO,SAAUA,GACf,IAAIP,EACJsQ,EAAExB,MAAMvO,EAAG,cAAc,SAAUA,GACjCP,EAAI+Q,EAAExQ,GAAI2P,GAAI,EAAID,GAAI,CACxB,GAAG,CACD8D,SAAS,IACPzD,EAAExB,MAAMvO,EAAG,aAAa,SAAUzB,GACpC,IAAIuC,EAAI6P,IACJtR,EAAIyB,EAAId,EAAEyT,aAAezT,EAAE0T,aAAe1T,EAAE2T,YAAc3T,EAAE4T,YAC5D7S,EAAItB,EAAI+Q,EAAEjS,GACV2C,EAAIJ,EAAId,EAAE6T,UAAY7T,EAAE8T,WACxBxT,EAAIQ,GAAK,WAAad,EAAE+T,MAAMC,YAAclT,GAAK,WAAad,EAAE+T,MAAME,UAC1E,GAAIxU,EAAI+Q,EAAEjS,IAAKwC,EAAI,GAAKG,EAAI,GAAKH,EAAI,GAAKG,EAAI7B,IAAMqQ,GAAKpP,EAAG,OAAOqP,GAAI,EACvED,GAAI,EAAI1Q,EAAET,GAAIoR,GAAI,CACpB,IAAII,EAAExB,MAAMvO,EAAG,YAAY,WACzB2P,GAAI,CACN,GACF,CAjBO,CAiBL3P,EACJ,GACF,CACF,CAEAA,EAAEuK,GAAG,UAAWsF,GAAI7P,EAAEuK,GAAG,iBAAkByG,GAAIhR,EAAEuK,GAAG,UAAWyG,GAAIhR,EAAEuK,GAAG,YAAawF,EAAEZ,MACzF,CAEA,SAASK,EAAExP,GACT,IAAIP,EACAlB,EACAuC,EAAI,KAER,SAASzB,EAAEI,EAAGlB,EAAGuC,GACfd,EAAE8S,SAASoB,OAASlV,EAAES,EAAGlB,EAAGuC,GAAKqT,uBAAsB,WACrD,OAAOnV,EAAES,EAAGlB,EAAGuC,EACjB,GACF,CAEA,SAASC,IACP1B,GAAE,GAAI,EAAId,EACZ,CAEA,SAASS,EAAET,EAAGc,EAAG0B,GACf,IAAI/B,EAAI,EACJJ,EAAIoB,EAAEqR,KACNxS,EAAImB,EAAEkS,MAAMP,QAEhB,GAAI9S,GAAKY,EAAG,CACV,IAAIjB,EAAIK,EAAE6S,OACVjS,EAAE+C,SAAQ,SAAUxC,EAAGP,GACrB,GAAIlB,GAAIuC,GAAKzB,GAAK6B,EAAElB,EAAG,KAAMe,GAAIT,EAAEN,EAAG,KAAMe,OAAQ,CAClD,IAAKvC,EAAEiB,GAAI,OACX,IAAIZ,EAAIL,EAAEiB,GAAG4R,KAAOzS,GACnBkC,GAAKzB,GAAK6B,EAAElB,EAAGnB,EAAGkC,GAAIT,EAAEN,EAAGxB,EAAEiB,GAAGqR,SAAWlS,EAAII,EAAG+B,GAAI/B,GAAKH,CAC9D,CACF,GACF,CACF,CAEA,SAASqC,EAAElB,EAAGP,EAAGlB,GACf,IAAIuC,EAAIvC,EAAI,SAAW,QACvB,OAASkB,IAAMA,GAAK,MAAOO,EAAE+T,MAAM,OAASjT,GAAKrB,EAAGO,EAAE+T,MAAM,OAASjT,GAAKrB,CAC5E,CAEA,SAASa,EAAEb,EAAGlB,EAAGuC,GACf,GAAI,OAASvC,EAAG,CACd,gBAAkByB,EAAEwL,QAAQ4I,aAAe7V,EAAI2M,KAAKqE,MAAMhR,IAC1D,IAAIc,EAAIyB,EAAIvC,EAAI,EAChBA,EAAI,eAAekP,OAAO3M,EAAI,EAAIvC,EAAG,QAAQkP,OAAOpO,EAAG,SACzD,CAEAI,EAAEsU,MAAMM,UAAY9V,EAAGkB,EAAEsU,MAAM,qBAAuBxV,CACxD,CAEA,SAASK,IACPa,GAAKJ,GAAE,GAAI,EAAId,GAAIyB,EAAEuK,GAAG,iBAAkBxJ,GAAG,EAC/C,CAEA,SAASlC,IACPQ,GAAE,GAAI,EAAId,EACZ,CAEA,SAASC,IACPI,IAAKL,EAAIyB,EAAEwL,QAAQyH,SAAUjT,EAAEwL,QAAQ6H,UAAY,WAAarT,EAAEwL,QAAQ4I,aAAetT,EAAI,SAAWgB,EAAE9B,EAAEwL,QAAQkG,OAAQ,UAAW,MAAO1R,EAAEuK,GAAG,iBAAkBxJ,IAAKtB,EAAIO,EAAE0R,QAAQlN,QAAU3F,IACpM,CAEAmB,EAAEuK,GAAG,UAAW/L,GAAIwB,EAAEuK,GAAG,iBAAkB/L,GAAIwB,EAAEuK,GAAG,UAAW1L,GAAImB,EAAEuK,GAAG,YAAa3L,EACvF,CAEA,SAASgQ,EAAEnP,EAAGlB,GACZ,OAAO,SAAUuC,GACf,IAAI9B,EACAkC,EACAtC,EACAC,EAEAuD,EACAzD,EAAI2B,IAER,SAASuB,EAAE7B,GACT,IAAIP,EACJJ,EAAEyB,EAAEyS,UAAW,UAAW,SAAW9T,EAAIqB,EAAEyS,UAAW1K,OAAOyL,iBAAiB7U,EAAG,MAAM8U,iBAAiB,eAAiBvU,EAAI,KAAO,IAAKX,EAAEyB,EAAEyS,UAAW,IAAKzS,EAAE0K,QAAQyH,WAAajT,EAAI,GAAK,MAAOX,EAAEyB,EAAEyS,UAAW,WAAYzS,EAAE0K,QAAQ6H,WAAarT,EAAI,GAAK,KACjQ,CAEA,SAASsC,IACPkN,KAAOG,GACT,CAEA,SAASH,IACP,IAAI/P,EAAI,KACR,GAAIZ,EAAE2D,SAAQ,SAAUxC,GACtBA,EAAEwU,UAAY/U,EAAIO,EAAEyU,QACtB,IAAIhV,IAAMT,EAAG,OAAO,EACpBA,EAAIS,EACJ,IAAIlB,EAAIkB,EAAIb,EAAE8V,YAAYjV,GAAKb,EAC/B,OAAOkC,EAAE0K,QAAU+B,EAAGA,EAAG,CAAC,EAAG3O,GAAIL,GAAIsD,IAAK4O,IAAKR,IAAKH,KAAK,CAC3D,CAEA,SAASlB,EAAE5O,GACT,IAAIP,EAAIjB,EAAEwB,GACV,OAAQc,EAAE0K,QAAQyH,SAAWxT,EAAEkV,OAASlV,EAAEmV,OAAS9T,EAAEuQ,MAAQ,CAC/D,CAEA,SAAStP,IACP,OAAOjB,EAAE0K,QAAQwG,YAAYxN,MAC/B,CAEA,SAASiL,EAAEhQ,GACT,IAAK,IAAIJ,KAAKL,GAAI,EAAIJ,EAAI2O,EAAGA,EAAG,CAAC,EAAGhP,GAAIkB,GAAId,EAAEwQ,QAASjO,EAAIJ,EAAEuQ,KAAMxS,EAAI,GAAID,EAAE8V,aAAe,GAAI,CAC9F,IAAI3T,EAAI8H,OAAOgM,WAAWxV,GAC1B0B,EAAE0T,QAAUpV,EAAGR,EAAEsF,KAAKpD,GAAIpC,EAAE0P,IAAItN,EAAG,SAAUuB,EAC/C,CAEA3D,EAAE0P,IAAIxF,OAAQ,oBAAqB0H,GAAI5R,EAAE0P,IAAIxF,OAAQ,SAAUkH,GAAIP,GACrE,CAEA,SAASE,EAAE1P,GACTc,EAAEgS,SAAStN,OACX,IAAI/F,EAAIqB,EAAEoR,MAAMP,QAChB7Q,EAAEoR,MAAMH,KAAK,MAAQ/R,EAAIA,EAAIP,EAAIA,EAAEuQ,IAAM,EAC3C,CAEA,SAASL,EAAE3P,GACT0P,EAAE1P,GAAIc,EAAEmQ,KAAK,iBACf,CAEA,SAASrB,EAAE5P,EAAGP,GACZ,GAAIO,EAAG,OAAOyP,EAAEzP,QAAS2P,EAAElQ,GAC3BgR,IAAKR,IACL,IAAI1R,EAAIwD,IACR+N,IAAK/N,MAAQxD,EAAIoR,EAAElQ,GAAKiQ,EAAEjQ,GAAIqB,EAAEmQ,KAAK,UACvC,CAEA,SAASnB,IACP,IAAI9P,EAAIc,EAAE0K,QAAQkG,OAClB,GAAI,mBAAqB1R,EAAG,OAAOc,EAAE0K,QAAQwG,YAAchS,EAAEc,EAAEuQ,KAAMvQ,EAAE4Q,QAEvE,IAAK,IAAIjS,EAAIqB,EAAE4Q,OAAQnT,EAAIkB,EAAE+E,OAAQnF,EAAI,iBAAmBW,EAAIA,EAAI8B,EAAE9B,EAAG,SAAUzB,GAAG,GAAKwC,EAAI,GAAI/B,EAAI8C,EAAE9B,EAAG,UAAW,GAAG,GAAKkB,EAAIY,EAAE9B,EAAG,UAAW,GAAG,GAAMc,EAAEuQ,MAAQ,EAAG/Q,EAAI,SAAWtB,EAAIkC,EAAIA,EAAIlC,EAAGJ,EAAIkD,EAAE9B,EAAG,SAAU,QAASnB,EAAI,EAAGL,EAAI,EAAGA,EAAIa,EAAGb,IAAK,CAC3P,IAAI6B,EAAI,SAAWrB,EAAI4P,EAAEnP,EAAEjB,IAAM,EAAIQ,EAAIkC,EAAIZ,EACzC8B,EAAI,WAAaxD,EAAI,GAAKyB,EAAI,EAAI,SAAWzB,EAAI,EAAIA,EACzDmC,EAAEoD,KAAK,CACLkM,OAAQjO,EACRiP,KAAMhR,EACNyU,QAAS5T,IACPrC,GAAKwB,CACX,CAEA,GAAIxB,GAAKqC,GAAK7B,EAAI,GAAI,SAAWT,IAAMkC,EAAE0K,QAAQqF,MAAQ,IAAM7R,EAAG,CAChE,IAAIL,EAAI,EACRoC,EAAEmQ,KAAI,SAAUlR,GACd,IAAIP,EAAIZ,EAAIF,EACZ,OAAOA,GAAKqB,EAAEqR,KAAOnQ,EAAGzB,GAAK,IAAMO,EAAEqQ,OAAS,EAAI5Q,GAAKZ,EAAI,EAAI,EAAI,EAAIA,IAAKmB,CAC9E,GACF,CAEAc,EAAE0K,QAAQwG,YAAcjR,CAC1B,CAEA,SAASgP,IACPU,IACA,IAAIzQ,EAAIc,EAAEuQ,KACVvQ,EAAE0K,QAAQ6H,UAAYrT,IAAMkB,IAAMA,EAAIlB,EAAG4P,IAC3C,CAEA,SAASW,IACPR,IAAKrD,WAAWqD,EAAG,KAAMrD,WAAWqD,EAAG,IACzC,CAEA,SAASU,IACP,IAAIzQ,EAAIxB,EAAEsC,EAAEyS,WACZzS,EAAEuQ,MAAQvQ,EAAE0K,QAAQyH,SAAWjT,EAAE2U,OAAS3U,EAAE4U,QAAU,CACxD,CAEA,SAAS3E,IACPnP,EAAE4Q,OAAS3Q,EAAED,EAAE0K,QAAQuJ,SAAUjU,EAAEyS,UACrC,CAEAzS,EAAEyS,WAAanR,EAAIrB,EAAEtB,EAAQmI,WAAWpD,OAASpC,EAAE,GAAK,KAAMtB,EAAEkU,QAAU,WACxErW,EAAEwQ,QAASrO,EAAEmQ,KAAK,aAAcpP,GAAE,EACpC,EAAGf,EAAEuE,KAAO,WACVvE,EAAEkS,UAAUlS,EAAEoR,MAAMP,QAAQ3B,IAAM,GAAG,EACvC,EAAGlP,EAAE6C,KAAO,WACV7C,EAAEkS,UAAUlS,EAAEoR,MAAMP,QAAQ3B,IAAM,GAAG,EACvC,EAAGlP,EAAEmU,OAASrF,EAAGH,EAAE3O,EAAE0K,QACvB,CACF,CAEA,IAAIzJ,EAAI,SAAW/B,EAAGzB,EAAGuC,GACvB,IACE,OAAO,SAAUd,EAAGP,GAClB,IAAIlB,EACAuC,EAAI,CAAC,EACT,OAAOvC,EAAI,CACT0S,KAAM,SAAcjR,GAClBc,EAAEd,IAAMc,EAAEd,GAAGwC,SAAQ,SAAUxC,GAC7BA,EAAEzB,EACJ,IACA,IAAIkB,EAAIlB,EAAEiN,QAAQxL,GAClBP,GAAKA,EAAElB,EACT,EACAyU,UAAW,SAAmBhT,EAAGP,EAAGqB,GAClC,IAAIzB,EAAId,EAAE2T,MAAMJ,UAAU9R,EAAGP,GAE7B,GAAIJ,EAAG,CACL,IAAI0B,EAAIxC,EAAEiN,QAAQ0J,iBAClB3W,EAAEuU,SAASC,MAAM,CAAC,CAChBjC,SAAUzR,EACVqT,SAAU5Q,EAAEhB,GAAKC,EAAG,WAAY,KAChC4R,OAAQ7Q,EAAEhB,GAAKC,EAAG,UAAU,SAAUf,GACpC,OAAO,IAAMA,EAAIA,EAAIA,EAAIA,EAAIA,CAC/B,MAEJ,CACF,EACAuK,GAAI,SAAYvK,EAAGP,EAAGlB,QACpB,IAAWA,IAAMA,GAAI,GAAKuC,EAAEd,KAAOc,EAAEd,GAAK,IAC1C,IAAIX,EAAIyB,EAAEd,GAAGmQ,QAAQ1Q,GACrBJ,GAAK,EAAId,UAAYuC,EAAEd,GAAGX,GAAKd,GAAKuC,EAAEd,GAAGmE,KAAK1E,EAChD,EACA+L,QAASxL,GACR,WACD,GAAIzB,EAAE2T,MAAQvT,EAAEJ,GAAIA,EAAEuU,SArtB9B,SAAW9S,GACT,IAAIP,EAAGlB,EAAGuC,EAAGzB,EAAG0B,EAAG/B,EAEnB,SAASkC,EAAEzB,GACTT,IAAMA,EAAIS,GAAIa,GAAE,GAChB,IAAIS,EAAItB,EAAIT,EACZ+B,EAAID,IAAMC,EAAID,GACd,IAAItC,EAAIa,EAAEd,GACV,GAAIC,EAAE,GAAKuC,EAAG,OAAOxC,IAAK2C,EAAEzB,GAC5B,IAAIqC,EAAItD,EAAE,GACN6B,EAAI7B,EAAE,GACN4D,EAAI5D,EAAE,GACNG,EAAIH,EAAE,IAAK,EAAIA,EAAE,IAAI,IAAM6B,EAAI,GAAKU,EAAIe,GAAKzB,GACjD,GAAI1B,GAAKqB,EAAEkS,MAAME,GAAGhQ,EAAIzD,GAAIoC,EAAID,EAAG,OAAOjC,IAC1CG,EAAI,KAAMsB,GAAE,GAAK1B,EAAE,MAAOoB,EAAEiR,KAAK,iBACnC,CAEA,SAAS3Q,EAAEN,GACTP,EAAEyU,OAASlU,CACb,CAEA,SAASpB,EAAEoB,GACTP,EAAE0V,UAAYnV,CAChB,CAEA,SAASnB,IACP,IAAImB,EACJA,EAAIkB,EAAGH,EAAI8H,OAAOsL,sBAAsBnU,EAC1C,CAEA,SAASxB,IACP,IAAIiB,EACJA,EAAIsB,EAAG8H,OAAOuM,qBAAqB3V,GAAIa,GAAE,GAAK1B,EAAE,MAAOI,GAAKgB,EAAEiR,KAAK,oBAAqBjS,EAAI,IAC9F,CAEA,OAAOS,EAAI,CACTyU,QAAQ,EACRnB,MAAO,SAAetT,GACpB,GAAIjB,IAAKwB,EAAEkS,MAAMP,QAAS,CACxB,IAAI5Q,EAAI,EACJ/B,EAAIgB,EAAEkS,MAAMP,QAAQH,SACxBjT,EAAI,EAAGuC,EAAI,EAAGzB,EAAII,EAAEyR,KAAI,SAAUlR,GAChC,IAAIP,EACAlB,EAAIS,EACJK,EAAI,QAAUI,EAAIO,EAAE4S,iBAAc,IAAWnT,EAAIA,EAAIO,EAAE0S,SACvDxR,EAAIlB,EAAE2S,OACNrS,EAAIN,EAAE8Q,SAAW5P,EAAE7B,EAAIW,EAAE0S,WAAa,EAC1C1T,GAAKsB,EACL,IAAI1B,EAAIkC,EACR,OAAOA,GAAKzB,EAAG0B,GAAKT,EAAG,CAAC/B,EAAGyB,EAAE8Q,SAAUlS,EAAGkC,EAAGd,EAAE0S,SAAUxR,EAC3D,IAAItC,EAAEoB,EAAEkS,MAAML,UAAU9Q,IAAKlC,IAAKmB,EAAEiR,KAAK,mBAC3C,CACF,EACAzL,KAAMhH,EACN2W,UAAW,KAEf,CA6pByC/S,CAAE7D,GAAIkB,EAAG,IAAK,IAAIO,KAAKP,EAAG,CACzD,IAAIqB,EAAIrB,EAAEO,GACVc,GAAKA,EAAEvC,EACT,CACAA,EAAE2T,MAAMH,KAAKxT,EAAEiN,QAAQ6J,SAAW,GAAI9W,EAAE0S,KAAK,UAC/C,CANG,GAME1S,CACP,CAtCO,CAsCLA,EAAGkB,EAAE,CAACmP,EAAE5O,EAAG,CACXoT,MAAM,EACN1T,KAAM,OACN0U,WAAY,YACZvB,YAAY,EACZkC,SAAU,wBACRvF,EAAGlN,EAAGT,GAAIf,GAAK,IAAI,GAGzB,CAFE,MAAOd,GACPsV,QAAQC,MAAMvV,EAChB,CACF,C,mBCr0BA,SAASY,EAAQmF,GAAmV,OAAtOnF,EAArD,oBAAXtB,QAAoD,kBAApBA,OAAO0B,SAAmC,SAAiB+E,GAAO,cAAcA,CAAK,EAAsB,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXzG,QAAyByG,EAAIpB,cAAgBrF,QAAUyG,IAAQzG,OAAOa,UAAY,gBAAkB4F,CAAK,EAAYnF,EAAQmF,EAAM,CAiCzXzH,EAAOD,QANP,SAAkBmB,GAChB,IAAImC,EAAOf,EAAQpB,GAEnB,OAAgB,MAATA,IAA0B,UAARmC,GAA4B,YAARA,EAC/C,C,mBC/BA,SAASf,EAAQmF,GAAmV,OAAtOnF,EAArD,oBAAXtB,QAAoD,kBAApBA,OAAO0B,SAAmC,SAAiB+E,GAAO,cAAcA,CAAK,EAAsB,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXzG,QAAyByG,EAAIpB,cAAgBrF,QAAUyG,IAAQzG,OAAOa,UAAY,gBAAkB4F,CAAK,EAAYnF,EAAQmF,EAAM,CAEzX,IAAIzD,EAEJA,EAAI,WACF,OAAOJ,IACT,CAFI,GAIJ,IAEEI,EAAIA,GAAK,IAAI3B,SAAS,cAAb,EAIX,CAHE,MAAOG,GAEiE,YAAjD,qBAAX+H,OAAyB,YAAcjI,EAAQiI,WAAuBvG,EAAIuG,OACxF,CAKAvK,EAAOD,QAAUiE,C,qBCnBjB,SAAS1B,EAAQmF,GAAmV,OAAtOnF,EAArD,oBAAXtB,QAAoD,kBAApBA,OAAO0B,SAAmC,SAAiB+E,GAAO,cAAcA,CAAK,EAAsB,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXzG,QAAyByG,EAAIpB,cAAgBrF,QAAUyG,IAAQzG,OAAOa,UAAY,gBAAkB4F,CAAK,EAAYnF,EAAQmF,EAAM,CAEzX,IAAIyP,EAAa,EAAQ,IACrBC,EAAe,EAAQ,IAIvBC,EAAY,kBAuBhBpX,EAAOD,QAJP,SAAkBmB,GAChB,MAAyB,UAAlBoB,EAAQpB,IAAsBiW,EAAajW,IAAUgW,EAAWhW,IAAUkW,CACnF,C,sBC5BA,0BAAoW,OAAtO9U,EAArD,oBAAXtB,QAAoD,kBAApBA,OAAO0B,SAAmC,SAAiB+E,GAAO,cAAcA,CAAK,EAAsB,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXzG,QAAyByG,EAAIpB,cAAgBrF,QAAUyG,IAAQzG,OAAOa,UAAY,gBAAkB4F,CAAK,EAAYnF,EAAQmF,EAAM,CAGzX,IAAIsH,EAAgF,WAAhD,qBAAXsI,EAAyB,YAAc/U,EAAQ+U,KAAwBA,GAAUA,EAAO1W,SAAWA,QAAU0W,EACtIrX,EAAOD,QAAUgP,C,wCCJjB,IAAID,EAAU,EAAQ,IAClBwI,EAAY,EAAQ,IACpBC,EAAiB,EAAQ,IAIzBC,EAAU,gBACVC,EAAe,qBAGfC,EAAiB5I,EAAUA,EAAQ7N,iBAAciH,EAiBrDlI,EAAOD,QARP,SAAoBmB,GAClB,OAAa,MAATA,OACegH,IAAVhH,EAAsBuW,EAAeD,EAGvCE,GAAkBA,KAAkB/W,OAAOO,GAASoW,EAAUpW,GAASqW,EAAerW,EAC/F,C,qBCzBA,IAAI4N,EAAU,EAAQ,IAIlB6I,EAAchX,OAAOkB,UAGrBC,EAAiB6V,EAAY7V,eAO7B8V,EAAuBD,EAAYE,SAGnCH,EAAiB5I,EAAUA,EAAQ7N,iBAAciH,EA+BrDlI,EAAOD,QAtBP,SAAmBmB,GACjB,IAAI4W,EAAQhW,EAAe1B,KAAKc,EAAOwW,GACnCK,EAAM7W,EAAMwW,GAEhB,IACExW,EAAMwW,QAAkBxP,EACxB,IAAI8P,GAAW,CACJ,CAAX,MAAOxV,GAAI,CAEb,IAAI4F,EAASwP,EAAqBxX,KAAKc,GAUvC,OARI8W,IACEF,EACF5W,EAAMwW,GAAkBK,SAEjB7W,EAAMwW,IAIVtP,CACT,C,mBC7CA,IAOIwP,EAPcjX,OAAOkB,UAOcgW,SAavC7X,EAAOD,QAJP,SAAwBmB,GACtB,OAAO0W,EAAqBxX,KAAKc,EACnC,C,mBCnBA,SAASoB,EAAQmF,GAAmV,OAAtOnF,EAArD,oBAAXtB,QAAoD,kBAApBA,OAAO0B,SAAmC,SAAiB+E,GAAO,cAAcA,CAAK,EAAsB,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXzG,QAAyByG,EAAIpB,cAAgBrF,QAAUyG,IAAQzG,OAAOa,UAAY,gBAAkB4F,CAAK,EAAYnF,EAAQmF,EAAM,CA8BzXzH,EAAOD,QAJP,SAAsBmB,GACpB,OAAgB,MAATA,GAAmC,UAAlBoB,EAAQpB,EAClC,C,qBC5BA,IAAI6J,EAAO,EAAQ,IAuBnB/K,EAAOD,QAJG,WACR,OAAOgL,EAAKqE,KAAK5C,KACnB,C,qBCrBA,IAAIyL,EAAW,EAAQ,IACnB1L,EAAW,EAAQ,IACnB2L,EAAW,EAAQ,IAInBC,EAAM,IAGNC,EAAa,qBAGbC,EAAa,aAGbC,EAAY,cAGZC,EAAeC,SAgDnBxY,EAAOD,QAvBP,SAAkBmB,GAChB,GAAoB,iBAATA,EACT,OAAOA,EAGT,GAAIgX,EAAShX,GACX,OAAOiX,EAGT,GAAI5L,EAASrL,GAAQ,CACnB,IAAIuX,EAAgC,mBAAjBvX,EAAMwX,QAAwBxX,EAAMwX,UAAYxX,EACnEA,EAAQqL,EAASkM,GAASA,EAAQ,GAAKA,CACzC,CAEA,GAAoB,iBAATvX,EACT,OAAiB,IAAVA,EAAcA,GAASA,EAGhCA,EAAQ+W,EAAS/W,GACjB,IAAIyX,EAAWN,EAAWO,KAAK1X,GAC/B,OAAOyX,GAAYL,EAAUM,KAAK1X,GAASqX,EAAarX,EAAM+F,MAAM,GAAI0R,EAAW,EAAI,GAAKP,EAAWQ,KAAK1X,GAASiX,GAAOjX,CAC9H,C,qBChEA,IAAI2X,EAAkB,EAAQ,IAI1BC,EAAc,OAalB9Y,EAAOD,QAJP,SAAkBgZ,GAChB,OAAOA,EAASA,EAAO9R,MAAM,EAAG4R,EAAgBE,GAAU,GAAGrN,QAAQoN,EAAa,IAAMC,CAC1F,C,mBCdA,IAAIC,EAAe,KAkBnBhZ,EAAOD,QARP,SAAyBgZ,GAGvB,IAFA,IAAIE,EAAQF,EAAO7S,OAEZ+S,KAAWD,EAAaJ,KAAKG,EAAO/R,OAAOiS,MAElD,OAAOA,CACT,C,qBCjBA,QAEmBC,EAFnB,cAAyW,OAA1OC,EAArD,oBAAXnY,QAAoD,kBAApBA,OAAO0B,SAAoC,SAAkB+E,GAAO,cAAcA,CAAK,EAAuB,SAAkBA,GAAO,OAAOA,GAAyB,oBAAXzG,QAAyByG,EAAIpB,cAAgBrF,QAAUyG,IAAQzG,OAAOa,UAAY,gBAAkB4F,CAAK,EAAY0R,EAAS1R,EAAM,CAE5WyR,EAEV,WACP,aAEA,SAAS5W,EAAQmF,GAaf,OATEnF,EADoB,oBAAXtB,QAAoD,kBAApBA,OAAO0B,SACtC,SAAiB+E,GACzB,cAAcA,CAChB,EAEU,SAAiBA,GACzB,OAAOA,GAAyB,oBAAXzG,QAAyByG,EAAIpB,cAAgBrF,QAAUyG,IAAQzG,OAAOa,UAAY,gBAAkB4F,CAC3H,EAGKnF,EAAQmF,EACjB,CAwFA,IAgBI2R,EA/EgB,SAAuB7Q,EAAQ8Q,GACjD,GAAwB,WAApB/W,EAAQiG,GACV,MAAO,GAGT,IAAI+Q,EAAW,GACXrZ,EAAI,EACJ2G,EAAOjG,OAAOiG,KAAK2B,GAEvB,GAAoB,IAAhB3B,EAAKV,OACP,MAAO,GAWT,IAPAU,EAAK2S,OAEAF,IACHC,GAAY,IAAM1S,EAAK,GAAK,IAAM2B,EAAO3B,EAAK,IAC9C3G,GAAK,GAGAA,EAAI2G,EAAKV,OAAQjG,GAAK,EAC3BqZ,GAAY,IAAM1S,EAAK3G,GAAK,IAAMsI,EAAO3B,EAAK3G,IAGhD,OAAOqZ,CACT,EAqDIF,EAhBU,SAAiBI,GAC7B,MAA0B,qBAAfA,EACF,EAGLA,EAAWvR,MAAM,oBAvCvB,SAAuBuR,GACrB,IAQIC,EARAC,EAAe,EACfC,EAAa,CACf,EAAK,EACL,EAAK,GACL,EAAK,KACL,EAAK,MACL,EAAK,QAKPF,GADAD,EAAaA,EAAW9N,QAAQ,aAAc,QAAQkO,QAC/BC,MAAM,KAE7B,IAAK,IAAI5Z,EAAI,EAAGA,EAAIwZ,EAAUvT,OAAQjG,GAAK,EACzCyZ,GAAgBlB,SAASiB,EAAUxZ,GAAI,IAAM0Z,EAAWF,EAAUxZ,EAAI,IAAM,KAG9E,OAAOyZ,CACT,CAqBWI,CAAcN,GAGnBA,EAAWvR,MAAM,cArBvB,SAAsBuR,GAKpB,IAJA,IAAIE,EAAe,EACfC,EAAa,CAAC,EAAG,GAAQ,KAAa,MAAkB,QACxDF,EAAYD,EAAWK,MAAM,KAExB5Z,EAAI,EAAGA,EAAIwZ,EAAUvT,OAAQjG,IACpCyZ,GAAgBlB,SAASiB,EAAUxZ,GAAI,IAAM0Z,EAAWF,EAAUvT,OAASjG,EAAI,GAGjF,OAAOyZ,CACT,CAYWK,CAAaP,GAGf,CACT,EAOIQ,EA3GiB,SAAwBC,GAC3C,GAAkB,kBAAPA,EACT,MAAO,CAAC,EAIV,IAEIJ,EAFAtR,EAAS,CAAC,EACVN,GAFJgS,EAAKA,EAAGJ,MAAM,KAAKK,KAAK,MAETjS,MAAM,+EAGrB,GAAc,OAAVA,EACF,MAAO,CAAC,EAGV4R,EAAQ5R,EAAM,GAAGkS,OAAO,GAAGN,MAAM,SAEjC,IAAK,IAAI5Z,EAAI,EAAGA,EAAI4Z,EAAM3T,OAAQjG,GAAK,EACrCsI,EAAO6R,mBAAmBP,EAAM5Z,KAAOma,mBAAmBP,EAAM5Z,EAAI,IAAM,IAG5E,OAAOsI,CACT,EAwFA,SAASZ,IACP,IAAK,IAAIC,EAAK,EAAGC,EAAO,CAAC,gBAAiB,QAAS,OAAQ,UAAWD,EAAKC,EAAK3B,OAAQ0B,IAAM,CAC5F,IAAIpG,EAAMqG,EAAKD,GACfhE,KAAKpC,GAAOoC,KAAKpC,GAAKC,KAAKmC,KAC7B,CAEAA,KAAKkE,QAAU,CAAC,CAClB,CAEA,IAAIuS,EAAY1S,EAEhBA,EAAU9F,UAAUkG,cAAgB,SAAUC,GAC5C,IAAIC,EAAQD,EAAIC,MAAM,6CACtB,OAAOA,EAAQA,EAAM,QAAKC,CAC5B,EAEAP,EAAU9F,UAAUsG,MAAQ,SAAUH,GACpC,GAAmB,qBAARA,EAAX,CAIA,IACII,EADAC,EAAWzE,KAAKmE,cAAcC,GAE9BM,EAAS1E,KAAKkE,QAAQO,GAE1B,GAAKA,GAAaC,GAAWA,EAAOH,MAWpC,OAPAC,EAASE,EAAOH,MAAM/H,KAAKkI,EAAQN,EAAKgS,EAAiBhS,QAGvDI,EAsCJ,SAA+BA,GAK7B,OAJIA,EAAOG,QAAgD,IAAtC5H,OAAOiG,KAAKwB,EAAOG,QAAQrC,eACvCkC,EAAOG,OAGTH,CACT,CA5CaI,CAAsBJ,IACxBC,SAAWC,EAAOD,UAGpBD,CAjBP,CAkBF,EAEAT,EAAU9F,UAAUJ,KAAO,SAAU6G,GAGnC,GAFA1E,KAAKkE,QAAQQ,EAAOD,UAAYC,EAE5BA,EAAOG,aACT,IAAK,IAAIxI,EAAI,EAAGA,EAAIqI,EAAOG,aAAavC,OAAQjG,GAAK,EACnD2D,KAAKkE,QAAQQ,EAAOG,aAAaxI,IAAMqI,CAG7C,EAEAX,EAAU9F,UAAUN,OAAS,SAAUmH,GACrC,GAAoB,WAAhBpG,EAAQoG,IAA8C,WAA1BpG,EAAQoG,EAAGC,WAA3C,CAIA,IAAIC,EAAKF,EAAGC,UACRJ,EAASG,EAAGH,OACZD,EAAS1E,KAAKkE,QAAQc,EAAGP,UAG7B,OAFAE,EAAoB,aAAXA,EAAwBK,EAAGL,OAASA,GAAU,CAAC,EAEpDD,IACFI,EAAGG,OAASH,EAAGG,QAAUP,EAAOQ,cAE5BR,EAAOS,QAAQjH,eAAe4G,EAAGG,SAC5BP,EAAOS,QAAQL,EAAGG,QAAQG,MAAMV,EAAQ,CAACM,EAAIjI,OAAOsI,OAAO,CAAC,EAAGV,UAJ1E,CAPA,CAgBF,EAUA,IACI+R,EADS,IAAID,EAGjB,SAASE,IACP3W,KAAKyE,SAAW,WAChBzE,KAAK6E,aAAe,GACpB7E,KAAKkF,cAAgB,QACrBlF,KAAKmF,QAAU,CACbyR,MAAO5W,KAAK6W,gBAEd7W,KAAK8W,WAAa,CAChBC,MAAO,QAEX,CAEAJ,EAAS1Y,UAAU+Y,SAAW,SAAU5S,GACtC,IAAIC,EAAQD,EAAIC,MAAM,kDACtB,OAAOA,EAAQA,EAAM,QAAKC,CAC5B,EAEAqS,EAAS1Y,UAAUsG,MAAQ,SAAUH,GACnC,IAAII,EAAS,CACXyS,UAAWjX,KAAK8W,WAAWC,MAC3BxO,GAAIvI,KAAKgX,SAAS5S,IAEpB,OAAOI,EAAO+D,GAAK/D,OAASF,CAC9B,EAEAqS,EAAS1Y,UAAU4Y,eAAiB,SAAU7R,GAC5C,GAAKA,EAAGuD,IAAMvD,EAAGiS,YAAcjX,KAAK8W,WAAWC,MAI/C,MAAO,8BAAgC/R,EAAGuD,GAAK,OACjD,EAEAmO,EAAK7Y,KAAK,IAAI8Y,GACd,IAAIO,EAAkB1B,EAEtB,SAAS2B,IACPnX,KAAKyE,SAAW,YAChBzE,KAAKkF,cAAgB,QACrBlF,KAAKmF,QAAU,CACbyR,MAAO5W,KAAK6W,gBAEd7W,KAAK8W,WAAa,CAChBC,MAAO,QAEX,CAEAI,EAAUlZ,UAAUmZ,gBAAkB,SAAUzS,GAE9C,cADOA,EAAO0S,IACP1S,CACT,EAEAwS,EAAUlZ,UAAUsG,MAAQ,SAAUH,EAAKO,GACzC,IAEIH,EAAS,CACXyS,UAAWjX,KAAK8W,WAAWC,MAC3BxO,GAAI5D,EAAO0S,KAIb,GAFA7S,EAAOG,OANK3E,KAMUoX,gBAAgBzS,GAEjCH,EAAO+D,GAIZ,OAAO/D,CACT,EAEA2S,EAAUlZ,UAAU4Y,eAAiB,SAAU7R,EAAIL,GACjD,GAAKK,EAAGuD,IAAMvD,EAAGiS,YAAcjX,KAAK8W,WAAWC,MAA/C,CAIA,IAAI3S,EAAM,oCAGV,OAFAO,EAAO0S,IAAMrS,EAAGuD,GAChBnE,GAAO8S,EAAgBvS,EAJvB,CAMF,EAEA+R,EAAK7Y,KAAK,IAAIsZ,GACd,IAAIG,EAAkB9B,EAEtB,SAAS+B,IACPvX,KAAKyE,SAAW,OAChBzE,KAAKkF,cAAgB,OACrBlF,KAAKmF,QAAU,CACb,KAAQnF,KAAKwX,cACbZ,MAAO5W,KAAK6W,gBAEd7W,KAAK8W,WAAa,CAChBC,MAAO,QAEX,CAEAQ,EAAKtZ,UAAU+Y,SAAW,SAAU5S,GAClC,IAAIC,EAAQD,EAAIC,MAAM,kCACtB,OAAOA,EAAQA,EAAM,QAAKC,CAC5B,EAEAiT,EAAKtZ,UAAUsG,MAAQ,SAAUH,EAAKO,GACpC,IAAIH,EAAS,CACXyS,UAAWjX,KAAK8W,WAAWC,MAC3BpS,OAAQA,EACR4D,GAAIvI,KAAKgX,SAAS5S,IAGpB,GAAKI,EAAO+D,GAIZ,OAAO/D,CACT,EAEA+S,EAAKtZ,UAAUwZ,UAAY,SAAUC,EAAS1S,EAAIL,GAChD,GAAKK,EAAGuD,IAAMvD,EAAGiS,YAAcjX,KAAK8W,WAAWC,MAA/C,CAIA,IAAI3S,EAAMsT,EAAU1S,EAAGuD,GAEvB,OADAnE,GAAOkT,EAAgB3S,EAHvB,CAKF,EAEA4S,EAAKtZ,UAAUuZ,cAAgB,SAAUxS,EAAIL,GAC3C,OAAO3E,KAAKyX,UAAU,yBAA0BzS,EAAIL,EACtD,EAEA4S,EAAKtZ,UAAU4Y,eAAiB,SAAU7R,EAAIL,GAC5C,OAAO3E,KAAKyX,UAAU,oBAAqBzS,EAAIL,EACjD,EAEA+R,EAAK7Y,KAAK,IAAI0Z,GACd,IAAII,EAAkBnC,EAClBoC,EAAYpC,EAEhB,SAASqC,IACP7X,KAAKyE,SAAW,cAChBzE,KAAK6E,aAAe,CAAC,OACrB7E,KAAKkF,cAAgB,OACrBlF,KAAKmF,QAAU,CACb,MAASnF,KAAK8X,eACd,KAAQ9X,KAAKwX,cACbZ,MAAO5W,KAAK6W,eACZkB,MAAO/X,KAAKgY,gBAEdhY,KAAK8W,WAAa,CAChBC,MAAO,QAEX,CAEAc,EAAY5Z,UAAUmZ,gBAAkB,SAAUzS,GAChD,OAAO3E,KAAKiY,UAAUtT,EACxB,EAEAkT,EAAY5Z,UAAUga,UAAY,SAAUtT,GAK1C,OAJIA,EAAOkM,QACTlM,EAAOkM,MAAQ+G,EAAUjT,EAAOkM,QAG3BlM,CACT,EAEAkT,EAAY5Z,UAAU+Y,SAAW,SAAU5S,GACzC,IAAIC,EAAQD,EAAIC,MAAM,mCACtB,OAAOA,EAAQA,EAAM,QAAKC,CAC5B,EAEAuT,EAAY5Z,UAAUsG,MAAQ,SAAUH,EAAKO,GAC3C,IAEIH,EAAS,CACXyS,UAAWjX,KAAK8W,WAAWC,MAC3BpS,OAJU3E,KAIIoX,gBAAgBzS,GAC9B4D,GALUvI,KAKAgX,SAAS5S,IAErB,OAAOI,EAAO+D,GAAK/D,OAASF,CAC9B,EAEAuT,EAAY5Z,UAAUwZ,UAAY,SAAUf,EAAM1R,EAAIL,GACpD,GAAKK,EAAGuD,IAAMvD,EAAGiS,YAAcjX,KAAK8W,WAAWC,MAI/C,OAAOL,EAAO1R,EAAGuD,GAAKoP,EAAgBhT,EACxC,EAEAkT,EAAY5Z,UAAU6Z,eAAiB,SAAU9S,EAAIL,GACnD,OAAO3E,KAAKyX,UAAU,kBAAmBzS,EAAIL,EAC/C,EAEAkT,EAAY5Z,UAAUuZ,cAAgB,SAAUxS,EAAIL,GAClD,OAAO3E,KAAKyX,UAAU,iCAAkCzS,EAAIL,EAC9D,EAEAkT,EAAY5Z,UAAU4Y,eAAiB,SAAU7R,EAAIL,GACnD,OAAO3E,KAAKyX,UAAU,2CAA4CzS,EAAIL,EACxE,EAEAkT,EAAY5Z,UAAU+Z,eAAiB,SAAUhT,EAAIL,GAEnD,cADOA,EAAOkM,MACP7Q,KAAKyX,UAAU,+CAAgDzS,EAAIL,EAC5E,EAEA+R,EAAK7Y,KAAK,IAAIga,GACd,IAAIK,EAAkB1C,EAEtB,SAAS2C,IACPnY,KAAKyE,SAAW,OAChBzE,KAAKkF,cAAgB,OACrBlF,KAAKmF,QAAU,CACb,KAAQnF,KAAKwX,cACbZ,MAAO5W,KAAK6W,gBAEd7W,KAAK8W,WAAa,CAChBC,MAAO,QAEX,CAEAoB,EAAKla,UAAU+Y,SAAW,SAAU5S,GAClC,IAAIC,EAAQD,EAAIC,MAAM,mCACtB,OAAOA,EAAQA,EAAM,QAAKC,CAC5B,EAEA6T,EAAKla,UAAUsG,MAAQ,SAAUH,EAAKO,GACpC,IAAIH,EAAS,CACXyS,UAAWjX,KAAK8W,WAAWC,MAC3BpS,OAAQA,EACR4D,GAAIvI,KAAKgX,SAAS5S,IAEpB,OAAOI,EAAO+D,GAAK/D,OAASF,CAC9B,EAEA6T,EAAKla,UAAUwZ,UAAY,SAAUC,EAAS1S,EAAIL,GAChD,GAAKK,EAAGuD,IAAMvD,EAAGiS,YAAcjX,KAAK8W,WAAWC,MAA/C,CAIA,IAAI3S,EAAMsT,EAAU1S,EAAGuD,GAEvB,OADAnE,GAAO8T,EAAgBvT,EAHvB,CAKF,EAEAwT,EAAKla,UAAUuZ,cAAgB,SAAUxS,EAAIL,GAC3C,OAAO3E,KAAKyX,UAAU,0BAA2BzS,EAAIL,EACvD,EAEAwT,EAAKla,UAAU4Y,eAAiB,SAAU7R,EAAIL,GAC5C,OAAO3E,KAAKyX,UAAU,oBAAqBzS,EAAIL,EACjD,EAEA+R,EAAK7Y,KAAK,IAAIsa,GACd,IAAIC,EAAkB5C,EAClB6C,EAAY7C,EAEhB,SAAS8C,IACPtY,KAAKyE,SAAW,SAChBzE,KAAKkF,cAAgB,OACrBlF,KAAKmF,QAAU,CACb,KAAQnF,KAAKwX,cACbZ,MAAO5W,KAAK6W,gBAEd7W,KAAK8W,WAAa,CAChBC,MAAO,QACPwB,OAAQ,SACRC,KAAM,OAEV,CAEAF,EAAOra,UAAUwa,WAAa,SAAUlQ,GACtC,MAAO,CACLmQ,IAAKnQ,EAAG,GACRA,GAAIA,EAAGgO,OAAO,GAElB,EAEA+B,EAAOra,UAAU0a,aAAe,SAAUnU,EAAQG,GAChD,IAAIiU,EAAUjU,EAAOiU,SAAWjU,EAAOkU,aAAerU,EAAOoU,QAG7D,cAFOjU,EAAOkU,mBACPlU,EAAOiU,QACPA,CACT,EAEAN,EAAOra,UAAU+Y,SAAW,SAAU5S,EAAKI,EAAQG,GACjD,IAAIN,EA4BJ,OA3BAA,EAAQD,EAAIC,MAAM,wFAELA,EAAM,GAEjBG,EAAO+D,GAAK,IAAMlE,EAAM,GACfM,EAAOmU,OAEhBtU,EAAO+D,GAAK5D,EAAOmU,aACZnU,EAAOmU,OACLnU,EAAOoU,MAEhBvU,EAAO+D,GAAK5D,EAAOoU,KACnBvU,EAAOwU,QAAS,SACTrU,EAAOoU,MACL1U,GAASA,EAAM,IAAMA,EAAM,IAEpCG,EAAO+D,GAAKlE,EAAM,GAClBG,EAAOwU,QAAS,GACP3U,GAASA,EAAM,IAAMA,EAAM,IAEpCG,EAAOoU,QAAUvU,EAAM,GACvBG,EAAO+D,GAAKlE,EAAM,GAClBG,EAAOwU,QAAS,GACP3U,GAASA,EAAM,KACxBG,EAAOoU,QAAUvU,EAAM,IAGlBG,CACT,EAEA8T,EAAOra,UAAUgb,eAAiB,SAAUzU,GAC1C,IAAIyS,EAaJ,OAXIzS,EAAO+D,GACL/D,EAAOwU,QACT/B,EAAYjX,KAAK8W,WAAW0B,YACrBhU,EAAOwU,QAEd/B,EAAYjX,KAAK8W,WAAWC,MAErBvS,EAAOoU,UAChB3B,EAAYjX,KAAK8W,WAAWyB,QAGvBtB,CACT,EAEAqB,EAAOra,UAAUmZ,gBAAkB,SAAUzS,GAM3C,OALIA,EAAOpH,IACToH,EAAOkM,MAAQwH,EAAU1T,EAAOpH,UACzBoH,EAAOpH,GAGToH,CACT,EAEA2T,EAAOra,UAAUsG,MAAQ,SAAUH,EAAKO,GACtC,IAAIuU,EAAQlZ,KAERwE,EAAS,CAAC,EAKd,OAJAA,EAAS0U,EAAMlC,SAAS5S,EAAKI,EAAQG,IAC9BiU,QAAUM,EAAMP,aAAanU,EAAQG,GAC5CH,EAAOyS,UAAYiC,EAAMD,eAAezU,GACxCA,EAAOG,OAASuU,EAAM9B,gBAAgBzS,GAC/BH,EAAOoU,SAAWpU,EAAO+D,GAAK/D,OAASF,CAChD,EAEAgU,EAAOra,UAAUuZ,cAAgB,SAAUxS,EAAIL,GAC7C,IAAIP,EAAM,GAEV,GAAIY,EAAGiS,YAAcjX,KAAK8W,WAAWyB,QAAUvT,EAAG4T,QAChDxU,EAAM,qBAAuBY,EAAG4T,aAC3B,GAAI5T,EAAGiS,YAAcjX,KAAK8W,WAAWC,OAAS/R,EAAGuD,GAEtDnE,EAAM,4BADIpE,KAAKyY,WAAWzT,EAAGuD,IACWA,GAEpC5D,EAAOkM,QACTlM,EAAOpH,EAAIoH,EAAOkM,MAAQ,WACnBlM,EAAOkM,WAEX,IAAI7L,EAAGiS,YAAcjX,KAAK8W,WAAW0B,OAAQxT,EAAGuD,GAOrD,OALEnE,EADEY,EAAG4T,QACC,yBAA2B5T,EAAG4T,QAAU,SAAW5T,EAAGuD,GAEtD,2BAA6BvD,EAAGuD,EAI1C,CAGA,OADAnE,GAAOgU,EAAgBzT,EAEzB,EAEA2T,EAAOra,UAAU4Y,eAAiB,SAAU7R,EAAIL,GAC9C,IAAIP,EAAM,4BAEV,GAAIY,EAAGiS,YAAcjX,KAAK8W,WAAWyB,QAAUvT,EAAG4T,QAChDjU,EAAOiU,QAAU5T,EAAG4T,aACf,GAAI5T,EAAGiS,YAAcjX,KAAK8W,WAAWC,OAAS/R,EAAGuD,GACtD5D,EAAOmU,MAAQ9T,EAAGuD,GAEd5D,EAAOkM,QACTlM,EAAOpH,EAAIoH,EAAOkM,MAAQ,WACnBlM,EAAOkM,WAEX,IAAI7L,EAAGiS,YAAcjX,KAAK8W,WAAW0B,OAAQxT,EAAGuD,GAIrD,OAHAnE,EAAM,gCACNO,EAAOoU,KAAO/T,EAAGuD,EAGnB,CAGA,OADAnE,GAAOgU,EAAgBzT,EAEzB,EAEA+R,EAAK7Y,KAAK,IAAIya,GACd,IAAIa,EAAkB3D,EAClB4D,EAAY5D,EAEhB,SAAS6D,IACPrZ,KAAKyE,SAAW,QAChBzE,KAAK6E,aAAe,CAAC,YACrB7E,KAAKkF,cAAgB,OACrBlF,KAAKmF,QAAU,CACb,KAAQnF,KAAKwX,cACbZ,MAAO5W,KAAK6W,gBAEd7W,KAAK8W,WAAa,CAChBC,MAAO,QAEX,CAEAsC,EAAMpb,UAAU+Y,SAAW,SAAU5S,GACnC,IAAIC,EAAQD,EAAIC,MAAM,qGACtB,OAAOA,EAAQA,EAAM,QAAKC,CAC5B,EAEA+U,EAAMpb,UAAUqb,UAAY,SAAUlV,GACpC,IAAIC,EAAQD,EAAIC,MAAM,kBACtB,OAAOA,EAAQA,EAAM,QAAKC,CAC5B,EAEA+U,EAAMpb,UAAUmZ,gBAAkB,SAAUzS,GAW1C,OAVIA,EAAOpH,IACToH,EAAOkM,MAAQuI,EAAUzU,EAAOpH,UACzBoH,EAAOpH,GAGZoH,EAAOhF,IACTgF,EAAO4U,KAAO5U,EAAOhF,SACdgF,EAAOhF,GAGTgF,CACT,EAEA0U,EAAMpb,UAAUsG,MAAQ,SAAUH,EAAKO,GACrC,IAAIH,EAAS,CACXyS,UAAWjX,KAAK8W,WAAWC,MAC3BpS,OAAQ3E,KAAKoX,gBAAgBzS,GAC7B4D,GAAIvI,KAAKgX,SAAS5S,IAEhBmV,EAAOvZ,KAAKsZ,UAAUlV,EAAKO,GAM/B,OAJI4U,IACF/U,EAAOG,OAAO4U,KAAOA,GAGhB/U,EAAO+D,GAAK/D,OAASF,CAC9B,EAEA+U,EAAMpb,UAAUwZ,UAAY,SAAUC,EAAS1S,EAAIL,EAAQlF,GACzD,GAAKuF,EAAGuD,IAAMvD,EAAGiS,YAAcjX,KAAK8W,WAAWC,MAA/C,CAIA,IAAI3S,EAAMsT,EAAU1S,EAAGuD,GACnBiR,EAAY7U,EAAOkM,MAmBvB,cAlBOlM,EAAOkM,MAEVlM,EAAO4U,OACI,UAAT9Z,EACFkF,EAAOhF,EAAIgF,EAAO4U,KACA,SAAT9Z,IACT2E,GAAO,IAAMO,EAAO4U,aAGf5U,EAAO4U,MAGhBnV,GAAO+U,EAAgBxU,GAEnB6U,IACFpV,GAAO,MAAQoV,GAGVpV,CAtBP,CAuBF,EAEAiV,EAAMpb,UAAUuZ,cAAgB,SAAUxS,EAAIL,GAC5C,OAAO3E,KAAKyX,UAAU,qBAAsBzS,EAAIL,EAAQ,OAC1D,EAEA0U,EAAMpb,UAAU4Y,eAAiB,SAAU7R,EAAIL,GAC7C,OAAO3E,KAAKyX,UAAU,4BAA6BzS,EAAIL,EAAQ,QACjE,EAEA+R,EAAK7Y,KAAK,IAAIwb,GACd,IAAII,EAAkBjE,EAClBkE,EAAYlE,EAEhB,SAASmE,IACP3Z,KAAKyE,SAAW,SAChBzE,KAAK6E,aAAe,GACpB7E,KAAKkF,cAAgB,OACrBlF,KAAKmF,QAAU,CACb,KAAQnF,KAAKwX,cACbZ,MAAO5W,KAAK6W,eACZ+C,WAAY5Z,KAAK6Z,qBAEnB7Z,KAAK8W,WAAa,CAChBC,MAAO,QACP+C,WAAY,aAEhB,CAEAH,EAAO1b,UAAU+Y,SAAW,SAAU5S,GACpC,IAAIC,EAAQD,EAAIC,MAAM,2CACtB,OAAOA,EAAQA,EAAM,QAAKC,CAC5B,EAEAqV,EAAO1b,UAAU0a,aAAe,SAAUvU,GACxC,IAAIC,EAAQD,EAAIC,MAAM,0CAClBuU,EAAUvU,EAAQA,EAAM,QAAKC,EAEjC,GAAgB,SAAZsU,GAAkC,YAAZA,EAI1B,OAAOA,CACT,EAEAe,EAAO1b,UAAUmZ,gBAAkB,SAAUzS,EAAQH,GAUnD,OATIG,EAAOoV,QACTpV,EAAOkM,MAAQ6I,EAAU/U,EAAOoV,cACzBpV,EAAOoV,OAGZpV,EAAOqV,SAAWxV,EAAO+D,WACpB5D,EAAOqV,OAGTrV,CACT,EAEAgV,EAAO1b,UAAUgb,eAAiB,SAAUzU,GAC1C,OAAIA,EAAO+D,IAAM/D,EAAOoU,QACf5Y,KAAK8W,WAAWC,MACdvS,EAAO+D,WACT/D,EAAOoU,QACP5Y,KAAK8W,WAAWgD,iBAEvB,CAEJ,EAEAH,EAAO1b,UAAUsG,MAAQ,SAAUH,EAAKO,GACtC,IAAIH,EAAS,CACX+D,GAAIvI,KAAKgX,SAAS5S,GAClBwU,QAAS5Y,KAAK2Y,aAAavU,IAK7B,GAHAI,EAAOG,OAAS3E,KAAKoX,gBAAgBzS,EAAQH,GAC7CA,EAAOyS,UAAYjX,KAAKiZ,eAAezU,GAElCA,EAAO+D,GAIZ,OAAO/D,CACT,EAEAmV,EAAO1b,UAAUwZ,UAAY,SAAUzS,EAAIL,EAAQP,GAOjD,OANIO,EAAOkM,QACTlM,EAAOoV,MAAQpV,EAAOkM,aACflM,EAAOkM,OAGhBzM,GAAOqV,EAAgB9U,EAEzB,EAEAgV,EAAO1b,UAAUuZ,cAAgB,SAAUxS,EAAIL,GAC7C,GAAKK,EAAGuD,IAAMvD,EAAGiS,YAAcjX,KAAK8W,WAAWC,MAA/C,CAIA,IAAI3S,EAAM,WAAaY,EAAG4T,QAAU,sBAAwB5T,EAAGuD,GAC/D,OAAOvI,KAAKyX,UAAUzS,EAAIL,EAAQP,EAHlC,CAIF,EAEAuV,EAAO1b,UAAU4Y,eAAiB,SAAU7R,EAAIL,GAC9C,GAAKK,EAAGuD,KAAQvD,EAAGiS,YAAcjX,KAAK8W,WAAWC,OAAS/R,EAAGiS,YAAcjX,KAAK8W,WAAWgD,YAA3F,CAIA,IAAI1V,EAAM,wCAA0CY,EAAGuD,GACvD,OAAOvI,KAAKyX,UAAUzS,EAAIL,EAAQP,EAHlC,CAIF,EAEAuV,EAAO1b,UAAU4b,oBAAsB,SAAU7U,GAC/C,GAAKA,EAAGuD,KAAQvD,EAAGiS,YAAcjX,KAAK8W,WAAWC,OAAS/R,EAAGiS,YAAcjX,KAAK8W,WAAWgD,YAI3F,MAAO,wCAA0C9U,EAAGuD,GAAK,QAC3D,EAEAmO,EAAK7Y,KAAK,IAAI8b,GACd,IAAIM,EAAkBzE,EAEtB,SAAS0E,IACPla,KAAKyE,SAAW,QAChBzE,KAAKkF,cAAgB,OACrBlF,KAAKmF,QAAU,CACbyR,MAAO5W,KAAK6W,eACZ,KAAQ7W,KAAKwX,cACb2C,MAAOna,KAAKoa,eACZ,OAAUpa,KAAKqa,iBAEjBra,KAAK8W,WAAa,CAChBC,MAAO,QAEX,CAEAmD,EAAMjc,UAAU+Y,SAAW,SAAU5S,GACnC,IAAIC,EAAQD,EAAIC,MAAM,2DACtB,OAAOA,EAAQA,EAAM,QAAKC,CAC5B,EAEA4V,EAAMjc,UAAUmZ,gBAAkB,SAAUzS,GAK1C,OAJIA,EAAO2V,iBACF3V,EAAO2V,SAGT3V,CACT,EAEAuV,EAAMjc,UAAUsG,MAAQ,SAAUH,EAAKO,GACrC,IAEIH,EAAS,CACXyS,UAAWjX,KAAK8W,WAAWC,MAC3BxO,GAJUvI,KAIAgX,SAAS5S,GACnBO,OALU3E,KAKIoX,gBAAgBzS,IAGhC,GAAKH,EAAO+D,GAIZ,OAAO/D,CACT,EAEA0V,EAAMjc,UAAUwZ,UAAY,SAAUC,EAAS1S,EAAIL,GACjD,GAAKK,EAAGuD,IAAMvD,EAAGiS,YAAcjX,KAAK8W,WAAWC,MAA/C,CAIA,IAAI3S,EAAMsT,EAAU1S,EAAGuD,GAEvB,OADAnE,GAAO6V,EAAgBtV,EAHvB,CAKF,EAEAuV,EAAMjc,UAAU4Y,eAAiB,SAAU7R,EAAIL,GAC7C,OAAO3E,KAAKyX,UAAU,iCAAkCzS,EAAIL,EAC9D,EAEAuV,EAAMjc,UAAUuZ,cAAgB,SAAUxS,EAAIL,GAC5C,OAAO3E,KAAKyX,UAAU,gCAAiCzS,EAAIL,EAC7D,EAEAuV,EAAMjc,UAAUoc,gBAAkB,SAAUrV,EAAIL,GAC9C,OAAO3E,KAAKyX,UAAU,+DAAgEzS,EAAIL,EAC5F,EAEAuV,EAAMjc,UAAUmc,eAAiB,SAAUpV,EAAIL,GAC7C,GAAKK,EAAGuD,IAAMvD,EAAGiS,YAAcjX,KAAK8W,WAAWC,MAA/C,CAIA,IAAI3S,EAAM,0CAA4CY,EAAGuD,GAAK,SAE9D,OADAnE,GAAO6V,EAAgBtV,EAHvB,CAKF,EAEA+R,EAAK7Y,KAAK,IAAIqc,GACd,IAAIK,EAAkB/E,EAClBgF,EAAYhF,EAEhB,SAASiF,IACPza,KAAKyE,SAAW,UAChBzE,KAAK6E,aAAe,CAAC,QAAS,SAC9B7E,KAAKkF,cAAgB,OACrBlF,KAAKmF,QAAU,CACb,MAASnF,KAAK8X,eACd,KAAQ9X,KAAKwX,cACbZ,MAAO5W,KAAK6W,eACZ6D,WAAY1a,KAAK2a,oBACjBC,UAAW5a,KAAK6a,oBAElB7a,KAAK8a,eAAiB,CACpB,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACLC,QAAS,UACTC,UAAW,YACXC,UAAW,YACXC,UAAW,YACXC,cAAe,iBAEjBnb,KAAKob,oBAAsBpb,KAAK8a,eAAeE,UAC/Chb,KAAK8W,WAAa,CAChBC,MAAO,QACPsE,SAAU,WACVC,MAAO,QACPC,QAAS,UAEb,CAEAd,EAAQxc,UAAUud,cAAgB,SAAUpX,GAC1C,IAAIC,EAAQD,EAAIC,MAAM,uEACtB,OAAOA,EAAQA,EAAM,QAAKC,CAC5B,EAEAmW,EAAQxc,UAAUwd,gBAAkB,SAAUrX,GAE5C,IAAIC,EAAQD,EAAIC,MAAM,uBAEtB,OAAIA,EACK,CACLkE,GAAIlE,EAAM,GACV4S,UAAWjX,KAAK8W,WAAWyE,UAM/BlX,EAAQD,EAAIC,MAAM,2BAGT,CACLzH,KAAMyH,EAAM,GACZ4S,UAAWjX,KAAK8W,WAAWyE,cAH/B,CAMF,EAEAd,EAAQxc,UAAUmZ,gBAAkB,SAAUzS,EAAQH,GAcpD,OAbIG,EAAOkM,OAASlM,EAAOpH,KACzBoH,EAAOkM,MAAQ2J,EAAU7V,EAAOkM,OAASlM,EAAOpH,UACzCoH,EAAOpH,GAGZoH,EAAOzE,IAAMsE,EAAO+D,WACf5D,EAAOzE,EAGZyE,EAAO+W,OAASlX,EAAO+D,WAClB5D,EAAO+W,KAGT/W,CACT,EAEA8V,EAAQxc,UAAUgb,eAAiB,SAAUzU,GAM3C,GALIA,EAAOG,OAAO+W,OAChBlX,EAAOkX,KAAOlX,EAAOG,OAAO+W,YACrBlX,EAAOG,OAAO+W,MAGnBlX,EAAO+D,KAAO/D,EAAOG,OAAOgX,GAC9BnX,EAAOyS,UAAYjX,KAAK8W,WAAWC,WAC9B,GAAIvS,EAAOkX,YACTlX,EAAO+D,GACd/D,EAAOyS,UAAYjX,KAAK8W,WAAWuE,aAC9B,KAAI7W,EAAOG,OAAOgX,GAIvB,cAHOnX,EAAOG,OAAOgX,GACrBnX,EAAOyS,UAAYjX,KAAK8W,WAAWwE,KAGrC,CAEA,OAAO9W,CACT,EAEAiW,EAAQxc,UAAUsG,MAAQ,SAAUH,EAAKO,GACvC,IAAIiX,EAAgB5b,KAAKyb,gBAAgBrX,GAEzC,GAAIwX,EACF,OAAOA,EAEP,IAAIpX,EAAS,CACXG,OAAQA,EACR4D,GAAIvI,KAAKwb,cAAcpX,IAIzB,OAFAI,EAAOG,OAAS3E,KAAKoX,gBAAgBzS,EAAQH,GAC7CA,EAASxE,KAAKiZ,eAAezU,EAGjC,EAEAiW,EAAQxc,UAAU6Z,eAAiB,SAAU9S,EAAIL,GAC/C,GAAKK,EAAGuD,IAAMvD,EAAGiS,YAAcjX,KAAK8W,WAAWC,MAA/C,CAIA,IAAI3S,EAAM,oBAAsBY,EAAGuD,GAMnC,OAJI5D,EAAOkM,QACTzM,GAAO,MAAQO,EAAOkM,OAGjBzM,CARP,CASF,EAEAqW,EAAQxc,UAAUuZ,cAAgB,SAAUxS,EAAIL,GAC9C,IAAIP,EAAM,GACNoV,EAAY7U,EAAOkM,MAGvB,UAFOlM,EAAOkM,MAEV7L,EAAGiS,YAAcjX,KAAK8W,WAAWyE,QACnC,GAAIvW,EAAGuD,GACLnE,GAAO,mCAAqCY,EAAGuD,OAC1C,KAAIvD,EAAGpI,KAGZ,OAFAwH,GAAO,6BAA+BY,EAAGpI,IAG3C,MACK,GAAIoI,EAAGiS,YAAcjX,KAAK8W,WAAWuE,UAAYrW,EAAG0W,KACzD/W,EAAOkX,QAAU,QACjBzX,GAAO,wCACF,GAAIY,EAAGiS,YAAcjX,KAAK8W,WAAWC,OAAS/R,EAAGuD,GACtD5D,EAAOzE,EAAI8E,EAAGuD,GACdnE,GAAO,oCACF,IAAIY,EAAGiS,YAAcjX,KAAK8W,WAAWwE,QAAStW,EAAGuD,GAItD,OAHA5D,EAAOgX,GAAK3W,EAAGuD,GACfnE,GAAO,gCAGT,CAYA,OAVIY,EAAG0W,OACL/W,EAAO+W,KAAO1W,EAAG0W,MAGnBtX,GAAOmW,EAAgB5V,GAEnBK,EAAGiS,YAAcjX,KAAK8W,WAAWuE,UAAY7B,IAC/CpV,GAAO,MAAQoV,GAGVpV,CACT,EAEAqW,EAAQxc,UAAU4Y,eAAiB,SAAU7R,EAAIL,GAC/C,IAAIP,EAAM,gCAEV,GAAIY,EAAGiS,YAAcjX,KAAK8W,WAAWuE,UAAYrW,EAAG0W,KAClD/W,EAAOmX,SAAW,eACb,IAAI9W,EAAGiS,YAAcjX,KAAK8W,WAAWC,QAAS/R,EAAGuD,GAOtD,OANAnE,GAAO,IAAMY,EAAGuD,GAEI,MAAhB5D,EAAOgK,OACThK,EAAOoX,SAAW/W,EAAGuD,GAIzB,CAOA,OALIvD,EAAG0W,OACL/W,EAAO+W,KAAO1W,EAAG0W,MAGnBtX,GAAOmW,EAAgB5V,EAEzB,EAEA8V,EAAQxc,UAAU+Z,eAAiB,SAAUN,EAAS1S,EAAIL,GACxD,GAAKK,EAAGuD,IAAMvD,EAAGiS,YAAcjX,KAAK8W,WAAWC,MAM/C,OAFUW,EAAU1S,EAAGuD,GAAK,KACd5D,EAAOqX,cAAgBhc,KAAKob,qBACnB,MACzB,EAEAX,EAAQxc,UAAU0c,oBAAsB,SAAU3V,EAAIL,GACpD,OAAO3E,KAAKgY,eAAe,0BAA2BhT,EAAIL,EAC5D,EAEA8V,EAAQxc,UAAU4c,mBAAqB,SAAU7V,EAAIL,GACnD,OAAO3E,KAAKgY,eAAe,8BAA+BhT,EAAIL,EAChE,EAEA+R,EAAK7Y,KAAK,IAAI4c,GACd,IAAIwB,EAAkBzG,EAClB0G,EAAY1G,EAEhB,SAAS2G,IACPnc,KAAKyE,SAAW,aAChBzE,KAAKkF,cAAgB,OACrBlF,KAAKmF,QAAU,CACb,KAAQnF,KAAKwX,cACbZ,MAAO5W,KAAK6W,gBAEd7W,KAAK8W,WAAa,CAChBsF,MAAO,QACPf,SAAU,WACVgB,SAAU,WACVC,YAAa,cAEjB,CAEAH,EAAWle,UAAU+Y,SAAW,SAAU5S,EAAKI,GAC7C,IAAIH,EAAQD,EAAIC,MAAM,6DAEtB,OAAKA,GAILG,EAAOoU,QAAUvU,EAAM,GAEN,cAAbA,EAAM,IAAsBA,EAAM,GAEpCG,EAAOkX,KAAOrX,EAAM,GAGpBG,EAAO+D,GAAKlE,EAAM,GAGbG,GAbEA,CAcX,EAEA2X,EAAWle,UAAUmZ,gBAAkB,SAAUzS,GAM/C,OALIA,EAAOpH,IACToH,EAAOkM,MAAQqL,EAAUvX,EAAOpH,UACzBoH,EAAOpH,GAGToH,CACT,EAEAwX,EAAWle,UAAUgb,eAAiB,SAAUzU,GAqB9C,OApBIA,EAAO+D,KACc,WAAnB/D,EAAOoU,gBACFpU,EAAOoU,eACPpU,EAAOG,OAAOP,IACrBI,EAAOyS,UAAYjX,KAAK8W,WAAWuF,UAEnC7X,EAAOyS,UAAYjX,KAAK8W,WAAWsF,OAInC5X,EAAOkX,OACc,cAAnBlX,EAAOoU,gBACFpU,EAAOoU,eACPpU,EAAOG,OAAOP,IACrBI,EAAOyS,UAAYjX,KAAK8W,WAAWwF,aAEnC9X,EAAOyS,UAAYjX,KAAK8W,WAAWuE,UAIhC7W,CACT,EAEA2X,EAAWle,UAAUsG,MAAQ,SAAUH,EAAKO,GAC1C,IAAIH,EAAS,CAAC,EAKd,IAJAA,EAASxE,KAAKgX,SAAS5S,EAAKI,IACrBG,OAAS3E,KAAKoX,gBAAgBzS,IACrCH,EAASxE,KAAKiZ,eAAezU,IAEjB+D,IAAO/D,EAAOkX,KAI1B,OAAOlX,CACT,EAEA2X,EAAWle,UAAUuZ,cAAgB,SAAUxS,EAAIL,GACjD,IAAIP,EAAM,GACNoV,EAAY7U,EAAOkM,MAGvB,UAFOlM,EAAOkM,MAEV7L,EAAGiS,YAAcjX,KAAK8W,WAAWsF,OAASpX,EAAGuD,IAAMvD,EAAG4T,QACxDxU,EAAM,0BAA4BY,EAAG4T,QAAU,IAAM5T,EAAGuD,QACnD,GAAIvD,EAAGiS,YAAcjX,KAAK8W,WAAWuE,UAAYrW,EAAG0W,MAAQ1W,EAAG4T,QACpExU,EAAM,0BAA4BY,EAAG4T,QAAU,SAAW5T,EAAG0W,UACxD,GAAI1W,EAAGiS,YAAcjX,KAAK8W,WAAWuF,UAAYrX,EAAGuD,GACzDnE,EAAM,qCAAuCY,EAAGuD,OAC3C,IAAIvD,EAAGiS,YAAcjX,KAAK8W,WAAWwF,cAAetX,EAAG0W,KAG5D,OAFAtX,EAAM,wCAA0CY,EAAG0W,IAGrD,CAQA,OANAtX,GAAO6X,EAAgBtX,GAEnB6U,IACFpV,GAAO,MAAQoV,GAGVpV,CACT,EAEA+X,EAAWle,UAAU4Y,eAAiB,SAAU7R,EAAIL,GAClD,IAAIP,EAAM,mCAGV,UAFOO,EAAOkM,MAEV7L,EAAGiS,YAAcjX,KAAK8W,WAAWuF,UAAYrX,EAAGuD,GAClD5D,EAAOP,IAAM,uCAAyCY,EAAGuD,OACpD,IAAIvD,EAAGiS,YAAcjX,KAAK8W,WAAWwF,cAAetX,EAAG0W,KAG5D,OAFA/W,EAAOP,IAAM,0CAA4CY,EAAG0W,IAG9D,CAGA,OADAtX,GAAO6X,EAAgBtX,EAEzB,EAEA+R,EAAK7Y,KAAK,IAAIse,GACd,IAAII,EAAkB/G,EAEtB,SAASgH,IACPxc,KAAKyE,SAAW,cAChBzE,KAAK6E,aAAe,GACpB7E,KAAKkF,cAAgB,OACrBlF,KAAKmF,QAAU,CACb,KAAQnF,KAAKwX,cACbZ,MAAO5W,KAAK6W,gBAEd7W,KAAK8W,WAAa,CAChBC,MAAO,QACP0F,MAAO,QACPC,SAAU,WACVnB,QAAS,UACToB,WAAY,aACZC,MAAO,QAEX,CAEAJ,EAAYve,UAAUsG,MAAQ,SAAUH,EAAKO,GAC3C,IAAIH,EAAS,CAAC,EACdA,EAAOkX,KAAO1b,KAAK6c,cAAclY,GACjCH,EAAOG,OAASA,EAChB,IAAIN,EAAQD,EAAIC,MAAM,8EAEtB,GAAKA,EAML,OAFAG,EAAOyS,UAAYjX,KAAKiZ,eAAe5U,EAAM,IAC7CG,EAAO+D,GAAKlE,EAAM,GACXG,CACT,EAEAgY,EAAYve,UAAU4e,cAAgB,SAAUlY,GAC9C,GAAIA,EAAO,eAAgB,CACzB,IAAI+W,EAAO/W,EAAO,eAElB,cADOA,EAAO,eACP+W,CACT,CAGF,EAEAc,EAAYve,UAAUgb,eAAiB,SAAU6D,GAC/C,OAAQA,GACN,IAAK,QACH,OAAO9c,KAAK8W,WAAW2F,MAEzB,IAAK,QACH,OAAOzc,KAAK8W,WAAWC,MAEzB,IAAK,WACH,OAAO/W,KAAK8W,WAAW4F,SAEzB,IAAK,eACH,OAAO1c,KAAK8W,WAAWyE,QAEzB,IAAK,aACH,OAAOvb,KAAK8W,WAAW6F,WAEzB,IAAK,QACH,OAAO3c,KAAK8W,WAAW8F,MAE7B,EAEAJ,EAAYve,UAAUuZ,cAAgB,SAAUxS,EAAIL,GAClD,GAAKK,EAAGuD,GAAR,CAIA,IAAInE,EAAM,+BAcV,OAZIY,EAAG0W,OACL/W,EAAO,eAAiBK,EAAG0W,MAGzB1W,EAAGiS,YAAcjX,KAAK8W,WAAWyE,QACnCnX,GAAO,gBAEPA,GAAOY,EAAGiS,UAAY,IAGxB7S,GAAOY,EAAGuD,GACVnE,GAAOmY,EAAgB5X,EAfvB,CAiBF,EAEA6X,EAAYve,UAAU4Y,eAAiB,SAAU7R,EAAIL,GACnD,GAAKK,EAAGuD,GAAR,CAIA,IAAInE,EAAM,qCAEV,GAAIY,EAAGiS,YAAcjX,KAAK8W,WAAWC,OAAS/R,EAAGiS,YAAcjX,KAAK8W,WAAW2F,MAO/E,OANErY,GAAOY,EAAGiS,UAAY,IAAMjS,EAAGuD,GAKjCnE,GAAOmY,EAAgB5X,EAVvB,CAYF,EAEA+R,EAAK7Y,KAAK,IAAI2e,GACd,IAAIO,EAAkBvH,EAEtB,SAASwH,IACPhd,KAAKyE,SAAW,SAChBzE,KAAKkF,cAAgB,OACrBlF,KAAKmF,QAAU,CACb,KAAQnF,KAAKwX,eAEfxX,KAAK8W,WAAa,CAChBC,MAAO,QAEX,CAEAiG,EAAO/e,UAAUsG,MAAQ,SAAUH,EAAKO,GACtC,IAAIH,EAAS,CACXG,OAAQA,EACRsS,UAAWjX,KAAK8W,WAAWC,OAEzB1S,EAAQD,EAAIC,MAAM,6BAEtB,GAAKA,EAML,OAFAG,EAAOoU,QAAUvU,EAAM,GACvBG,EAAO+D,GAAKlE,EAAM,GACXG,CACT,EAEAwY,EAAO/e,UAAUuZ,cAAgB,SAAUxS,EAAIL,GAC7C,IAAIP,EAAM,GAEV,GAAIY,EAAGiS,YAAcjX,KAAK8W,WAAWC,OAAS/R,EAAGuD,IAAMvD,EAAG4T,QAO1D,OANExU,GAAO,2BAA2BmH,OAAOvG,EAAG4T,QAAS,WAAWrN,OAAOvG,EAAGuD,IAK5EnE,GAAO2Y,EAAgBpY,EAEzB,EAEA+R,EAAK7Y,KAAK,IAAImf,GACd,IAAIC,EAAkBzH,EAEtB,SAAS0H,IACPld,KAAKyE,SAAW,MAChBzE,KAAKmF,QAAU,CACb,KAAQnF,KAAKwX,cACbZ,MAAO5W,KAAK6W,gBAEd7W,KAAK8W,WAAa,CAChBC,MAAO,QACPsE,SAAU,WAEd,CAEA6B,EAAIjf,UAAU+Y,SAAW,SAAU5S,EAAKI,GACtC,IAAIH,EAAQD,EAAIC,MAAM,yCAClBuU,EAAUvU,EAAQA,EAAM,QAAKC,EAEjC,OAAKsU,GAILpU,EAAOoU,QAAUA,EAAQ3C,MAAM,KAAK,GACpCzR,EAAO+D,GAAKlE,EAAM,GAEK,cAAnBG,EAAOoU,UACTpU,EAAOkX,KAAOrX,EAAM,IAGfG,GAVEA,CAWX,EAEA0Y,EAAIjf,UAAUgb,eAAiB,SAAUzU,GAWvC,OAVIA,EAAO+D,IAAyB,cAAnB/D,EAAOoU,iBACfpU,EAAOoU,QACdpU,EAAOyS,UAAYjX,KAAK8W,WAAWuE,UAGjC7W,EAAO+D,IAAyB,UAAnB/D,EAAOoU,iBACfpU,EAAOoU,QACdpU,EAAOyS,UAAYjX,KAAK8W,WAAWC,OAG9BvS,CACT,EAEA0Y,EAAIjf,UAAUsG,MAAQ,SAAUH,EAAKO,GACnC,IAAIH,EAAS,CACXG,OAAQA,GAKV,GAHAH,EAASxE,KAAKgX,SAAS5S,EAAKI,IAC5BA,EAASxE,KAAKiZ,eAAezU,IAEjB+D,GAIZ,OAAO/D,CACT,EAEA0Y,EAAIjf,UAAUuZ,cAAgB,SAAUxS,EAAIL,GAC1C,IAAIP,EAAM,GAEV,GAAIY,EAAGiS,YAAcjX,KAAK8W,WAAWC,OAAS/R,EAAGuD,GAC/CnE,GAAO,yBAA2BY,EAAGuD,OAChC,IAAIvD,EAAGiS,YAAcjX,KAAK8W,WAAWuE,WAAYrW,EAAGuD,GAGzD,OAFAnE,GAAO,6BAA+BY,EAAG0W,KAAO,IAAM1W,EAAGuD,EAG3D,CAGA,OADAnE,GAAO6Y,EAAgBtY,EAEzB,EAEAuY,EAAIjf,UAAU4Y,eAAiB,SAAU7R,EAAIL,GAC3C,IAAIP,EAAM,yBAEV,GAAIY,EAAGiS,YAAcjX,KAAK8W,WAAWuE,UAAYrW,EAAGuD,GAClDnE,GAAO,aAAeY,EAAG0W,KAAO,IAAM1W,EAAGuD,OACpC,IAAIvD,EAAGiS,YAAcjX,KAAK8W,WAAWC,QAAS/R,EAAGuD,GAGtD,OAFAnE,GAAO,SAAWY,EAAGuD,EAGvB,CAGA,OADAnE,GAAO6Y,EAAgBtY,EAEzB,EAEA+R,EAAK7Y,KAAK,IAAIqf,GACd,IAAIC,EAAkB3H,EAEtB,SAAS4H,IACPpd,KAAKyE,SAAW,WAChBzE,KAAK6E,aAAe,GACpB7E,KAAKkF,cAAgB,OACrBlF,KAAKmF,QAAU,CACb,KAAQnF,KAAKwX,cACb6F,MAAOrd,KAAKsd,gBAEdtd,KAAK8W,WAAa,CAChBC,MAAO,QAEX,CAiEA,OA/DAqG,EAASnf,UAAUsG,MAAQ,SAAUH,EAAKO,GACxC,IAAIH,EAAS,CACXG,OAAQA,EACRsS,UAAWjX,KAAK8W,WAAWC,OAEzB1S,EAAQD,EAAIC,MAAM,0CAgBtB,GAdIA,IACEA,EAAM,KACRG,EAAO+Y,OAASlZ,EAAM,IAGxBG,EAAO+D,GAAKlE,EAAM,IAGhBM,EAAOzE,IAAMsE,EAAO+D,KACtB/D,EAAO+D,GAAK5D,EAAOzE,SACZyE,EAAOzE,EACdsE,EAAOG,OAASA,GAGbH,EAAO+D,GAIZ,OAAO/D,CACT,EAEA4Y,EAASnf,UAAUqf,eAAiB,SAAUtY,EAAIL,GAChD,IAAIP,EAAM,8BAEV,GAAIY,EAAGiS,YAAcjX,KAAK8W,WAAWC,OAAU/R,EAAGuD,GAQlD,OAJA5D,EAAS,CACPzE,EAAG8E,EAAGuD,IAERnE,GAAO+Y,EAAgBxY,EAEzB,EAEAyY,EAASnf,UAAUuZ,cAAgB,SAAUxS,EAAIL,GAC/C,IAAIP,EAAM,wBAEV,GAAIY,EAAGuY,SACLnZ,GAAOY,EAAGuY,OAKRvY,EAAGiS,YAAcjX,KAAK8W,WAAWC,OAAS/R,EAAGuD,IAOjD,OANEnE,GAAO,WAAaY,EAAGuD,GAKzBnE,GAAO+Y,EAAgBxY,EAEzB,EAEA+R,EAAK7Y,KAAK,IAAIuf,GACJ1G,CAEZ,EA9gDyE,WAAvBnB,EAASpZ,IAA4C,qBAAXC,EAAyBA,EAAOD,QAAUmZ,SAAuE,2BAAd,KAAc,iC,qBCH7M,IAAIkI,EAAW,EAAQ,IACnBC,EAAgBD,EAASC,cACzBC,EAAUF,EAASE,QAEvB,SAASjD,IACPza,KAAKyE,SAAW,UAChBzE,KAAK6E,aAAe,CAAC,QAAS,SAC9B7E,KAAKkF,cAAgB,OACrBlF,KAAKmF,QAAU,CACb,MAASnF,KAAK8X,eACd,KAAQ9X,KAAKwX,cACbZ,MAAO5W,KAAK6W,eACZ6D,WAAY1a,KAAK2a,oBACjBC,UAAW5a,KAAK6a,oBAElB7a,KAAK8a,eAAiB,CACpB,EAAK,IACL,EAAK,IACL,EAAK,IACL,EAAK,IACLC,QAAS,UACTC,UAAW,YACXC,UAAW,YACXC,UAAW,YACXC,cAAe,iBAEjBnb,KAAKob,oBAAsBpb,KAAK8a,eAAeE,UAC/Chb,KAAK8W,WAAa,CAChBC,MAAO,QACPsE,SAAU,WACVC,MAAO,QACPC,QAAS,UAEb,CAEAnf,EAAOD,QAAUse,EAEjBA,EAAQxc,UAAUud,cAAgB,SAAUpX,GAC1C,IAAIC,EAAQD,EAAIC,MAAM,uEACtB,OAAOA,EAAQA,EAAM,QAAKC,CAC5B,EAEAmW,EAAQxc,UAAUwd,gBAAkB,SAAUrX,GAE5C,IAAIC,EAAQD,EAAIC,MAAM,uBAEtB,OAAIA,EACK,CACLkE,GAAIlE,EAAM,GACV4S,UAAWjX,KAAK8W,WAAWyE,UAM/BlX,EAAQD,EAAIC,MAAM,2BAGT,CACLzH,KAAMyH,EAAM,GACZ4S,UAAWjX,KAAK8W,WAAWyE,cAH/B,CAMF,EAEAd,EAAQxc,UAAUmZ,gBAAkB,SAAUzS,EAAQH,GAcpD,OAbIG,EAAOkM,OAASlM,EAAOpH,KACzBoH,EAAOkM,MAAQ6M,EAAQ/Y,EAAOkM,OAASlM,EAAOpH,UACvCoH,EAAOpH,GAGZoH,EAAOzE,IAAMsE,EAAO+D,WACf5D,EAAOzE,EAGZyE,EAAO+W,OAASlX,EAAO+D,WAClB5D,EAAO+W,KAGT/W,CACT,EAEA8V,EAAQxc,UAAUgb,eAAiB,SAAUzU,GAM3C,GALIA,EAAOG,OAAO+W,OAChBlX,EAAOkX,KAAOlX,EAAOG,OAAO+W,YACrBlX,EAAOG,OAAO+W,MAGnBlX,EAAO+D,KAAO/D,EAAOG,OAAOgX,GAC9BnX,EAAOyS,UAAYjX,KAAK8W,WAAWC,WAC9B,GAAIvS,EAAOkX,YACTlX,EAAO+D,GACd/D,EAAOyS,UAAYjX,KAAK8W,WAAWuE,aAC9B,KAAI7W,EAAOG,OAAOgX,GAIvB,cAHOnX,EAAOG,OAAOgX,GACrBnX,EAAOyS,UAAYjX,KAAK8W,WAAWwE,KAGrC,CAEA,OAAO9W,CACT,EAEAiW,EAAQxc,UAAUsG,MAAQ,SAAUH,EAAKO,GACvC,IAAIiX,EAAgB5b,KAAKyb,gBAAgBrX,GAEzC,GAAIwX,EACF,OAAOA,EAEP,IAAIpX,EAAS,CACXG,OAAQA,EACR4D,GAAIvI,KAAKwb,cAAcpX,IAIzB,OAFAI,EAAOG,OAAS3E,KAAKoX,gBAAgBzS,EAAQH,GAC7CA,EAASxE,KAAKiZ,eAAezU,EAGjC,EAEAiW,EAAQxc,UAAU6Z,eAAiB,SAAU9S,EAAIL,GAC/C,GAAKK,EAAGuD,IAAMvD,EAAGiS,YAAcjX,KAAK8W,WAAWC,MAA/C,CAIA,IAAI3S,EAAM,oBAAsBY,EAAGuD,GAMnC,OAJI5D,EAAOkM,QACTzM,GAAO,MAAQO,EAAOkM,OAGjBzM,CARP,CASF,EAEAqW,EAAQxc,UAAUuZ,cAAgB,SAAUxS,EAAIL,GAC9C,IAAIP,EAAM,GACNoV,EAAY7U,EAAOkM,MAGvB,UAFOlM,EAAOkM,MAEV7L,EAAGiS,YAAcjX,KAAK8W,WAAWyE,QACnC,GAAIvW,EAAGuD,GACLnE,GAAO,mCAAqCY,EAAGuD,OAC1C,KAAIvD,EAAGpI,KAGZ,OAFAwH,GAAO,6BAA+BY,EAAGpI,IAG3C,MACK,GAAIoI,EAAGiS,YAAcjX,KAAK8W,WAAWuE,UAAYrW,EAAG0W,KACzD/W,EAAOkX,QAAU,QACjBzX,GAAO,wCACF,GAAIY,EAAGiS,YAAcjX,KAAK8W,WAAWC,OAAS/R,EAAGuD,GACtD5D,EAAOzE,EAAI8E,EAAGuD,GACdnE,GAAO,oCACF,IAAIY,EAAGiS,YAAcjX,KAAK8W,WAAWwE,QAAStW,EAAGuD,GAItD,OAHA5D,EAAOgX,GAAK3W,EAAGuD,GACfnE,GAAO,gCAGT,CAYA,OAVIY,EAAG0W,OACL/W,EAAO+W,KAAO1W,EAAG0W,MAGnBtX,GAAOqZ,EAAc9Y,GAEjBK,EAAGiS,YAAcjX,KAAK8W,WAAWuE,UAAY7B,IAC/CpV,GAAO,MAAQoV,GAGVpV,CACT,EAEAqW,EAAQxc,UAAU4Y,eAAiB,SAAU7R,EAAIL,GAC/C,IAAIP,EAAM,gCAEV,GAAIY,EAAGiS,YAAcjX,KAAK8W,WAAWuE,UAAYrW,EAAG0W,KAClD/W,EAAOmX,SAAW,eACb,IAAI9W,EAAGiS,YAAcjX,KAAK8W,WAAWC,QAAS/R,EAAGuD,GAOtD,OANAnE,GAAO,IAAMY,EAAGuD,GAEI,MAAhB5D,EAAOgK,OACThK,EAAOoX,SAAW/W,EAAGuD,GAIzB,CAOA,OALIvD,EAAG0W,OACL/W,EAAO+W,KAAO1W,EAAG0W,MAGnBtX,GAAOqZ,EAAc9Y,EAEvB,EAEA8V,EAAQxc,UAAU+Z,eAAiB,SAAUN,EAAS1S,EAAIL,GACxD,GAAKK,EAAGuD,IAAMvD,EAAGiS,YAAcjX,KAAK8W,WAAWC,MAM/C,OAFUW,EAAU1S,EAAGuD,GAAK,KACd5D,EAAOqX,cAAgBhc,KAAKob,qBACnB,MACzB,EAEAX,EAAQxc,UAAU0c,oBAAsB,SAAU3V,EAAIL,GACpD,OAAO3E,KAAKgY,eAAe,0BAA2BhT,EAAIL,EAC5D,EAEA8V,EAAQxc,UAAU4c,mBAAqB,SAAU7V,EAAIL,GACnD,OAAO3E,KAAKgY,eAAe,8BAA+BhT,EAAIL,EAChE,EAEA,EAAQ,KAAW9G,KAAK,IAAI4c,E,mBCrN5B,SAAS/b,EAAQmF,GAAmV,OAAtOnF,EAArD,oBAAXtB,QAAoD,kBAApBA,OAAO0B,SAAmC,SAAiB+E,GAAO,cAAcA,CAAK,EAAsB,SAAiBA,GAAO,OAAOA,GAAyB,oBAAXzG,QAAyByG,EAAIpB,cAAgBrF,QAAUyG,IAAQzG,OAAOa,UAAY,gBAAkB4F,CAAK,EAAYnF,EAAQmF,EAAM,CAEzX1H,EAAQ2H,eAAiB,SAAwBuS,GAC/C,GAAkB,kBAAPA,EACT,MAAO,CAAC,EAIV,IAEIJ,EAFAtR,EAAS,CAAC,EACVN,GAFJgS,EAAKA,EAAGJ,MAAM,KAAKK,KAAK,MAETjS,MAAM,+EAGrB,GAAc,OAAVA,EACF,MAAO,CAAC,EAGV4R,EAAQ5R,EAAM,GAAGkS,OAAO,GAAGN,MAAM,SAEjC,IAAK,IAAI5Z,EAAI,EAAGA,EAAI4Z,EAAM3T,OAAQjG,GAAK,EACrCsI,EAAO6R,mBAAmBP,EAAM5Z,KAAOma,mBAAmBP,EAAM5Z,EAAI,IAAM,IAG5E,OAAOsI,CACT,EAEAxI,EAAQshB,cAAgB,SAAuB9Y,EAAQ8Q,GACrD,GAAwB,WAApB/W,EAAQiG,GACV,MAAO,GAGT,IAAI+Q,EAAW,GACXrZ,EAAI,EACJ2G,EAAOjG,OAAOiG,KAAK2B,GAEvB,GAAoB,IAAhB3B,EAAKV,OACP,MAAO,GAWT,IAPAU,EAAK2S,OAEAF,IACHC,GAAY,IAAM1S,EAAK,GAAK,IAAM2B,EAAO3B,EAAK,IAC9C3G,GAAK,GAGAA,EAAI2G,EAAKV,OAAQjG,GAAK,EAC3BqZ,GAAY,IAAM1S,EAAK3G,GAAK,IAAMsI,EAAO3B,EAAK3G,IAGhD,OAAOqZ,CACT,EAqCAvZ,EAAQuhB,QAAU,SAAiB9H,GACjC,MAA0B,qBAAfA,EACF,EAGLA,EAAWvR,MAAM,oBAvCvB,SAAuBuR,GACrB,IAQIC,EARAC,EAAe,EACfC,EAAa,CACf,EAAK,EACL,EAAK,GACL,EAAK,KACL,EAAK,MACL,EAAK,QAKPF,GADAD,EAAaA,EAAW9N,QAAQ,aAAc,QAAQkO,QAC/BC,MAAM,KAE7B,IAAK,IAAI5Z,EAAI,EAAGA,EAAIwZ,EAAUvT,OAAQjG,GAAK,EACzCyZ,GAAgBlB,SAASiB,EAAUxZ,GAAI,IAAM0Z,EAAWF,EAAUxZ,EAAI,IAAM,KAG9E,OAAOyZ,CACT,CAqBWI,CAAcN,GAGnBA,EAAWvR,MAAM,cArBvB,SAAsBuR,GAKpB,IAJA,IAAIE,EAAe,EACfC,EAAa,CAAC,EAAG,GAAQ,KAAa,MAAkB,QACxDF,EAAYD,EAAWK,MAAM,KAExB5Z,EAAI,EAAGA,EAAIwZ,EAAUvT,OAAQjG,IACpCyZ,GAAgBlB,SAASiB,EAAUxZ,GAAI,IAAM0Z,EAAWF,EAAUvT,OAASjG,EAAI,GAGjF,OAAOyZ,CACT,CAYWK,CAAaP,GAGf,CACT,C,wFCpGM+H,EAAgB,WACpBlD,IAAQje,KAAKwD,KACd,GACD2d,EAAc1f,UAAYlB,OAAOY,OAAO8c,IAAQxc,YACxBud,cAAgB,SAAUpX,GAChD,IAEMC,EAAQD,EAAIC,MADhB,8EAEF,OAAOA,EAAQA,EAAM,QAAKC,CAC3B,EACDqZ,EAAc1f,UAAUwE,YAAckb,EAEvBA,Q,yeCXfC,IAAe1Z,QAAQ2Z,QAAU,IAAIF,E,IAE/B9V,E,WACJ,WAAYiW,I,4FAAW,CAAD,QACpB9d,KAAK8d,SAAWA,CACjB,C,0DAEU,IAAD,OACRpY,SAASkG,iBAAiB,eAAetL,QAAzC,6BAAiD,WAAMyd,GAAN,iBAAAlf,EAAA,2DACzCkG,EAAY6Y,IAAerZ,MAAMwZ,EAAKC,WAAW5Z,IAAI9G,QADZ,sBAIrCyH,EAAUN,SAJ2B,OAKtC,UALsC,OAQtC,YARsC,6BAMzCsZ,EAAKE,cAAcC,UAAY,EAAKC,iBAAL,mCAAkDpZ,EAAUwD,KANlD,kCASzCwV,EAAKE,cAAcC,UAAY,EAAKC,iBAAL,kCAAiDpZ,EAAUwD,KATjD,uDAatCwV,EAAKC,WAAW5Z,IAAI9G,MAbkB,kCAc1B,EAAK8gB,aAAaL,EAAKC,WAAW5Z,IAAI9G,OAdZ,QAcvC+gB,EAduC,OAe7CN,EAAKE,cAAcC,UAAYG,EAfc,4CAAjD,sDAkBD,G,uCAEgBja,GACf,IAAMka,EAAiB5Y,SAAS6Y,cAAc,OACxCC,EAAS9Y,SAAS6Y,cAAc,UAQtC,OAPAC,EAAO9S,aAAa,QAAS,QAC7B8S,EAAO9S,aAAa,SAAU,QAC9B8S,EAAO9S,aAAa,MAAOtH,GAC3Boa,EAAO9S,aAAa,cAAe,GACnC8S,EAAO9S,aAAa,kBAAmB,IACvC4S,EAAeG,UAAY,kBAC3BH,EAAevY,YAAYyY,GACpBF,EAAeI,SACvB,G,oDAEkBC,G,kFACXva,EAAMwa,mBAAmBD,G,SACRE,YAAiB,mBAAD,OAAoBza,I,cAArDmC,E,gBACaA,EAASuY,O,cAAtBA,E,yBACCA,EAAKC,M,6HAIDlX,K,2yCC1CR,SAAemX,EAAtB,sC,kCAAO,WAAqCC,EAAeC,EAAgBC,GAApE,eAAAtgB,EAAA,sEAGHogB,EAAcG,UAAUjT,IAAI,YAExB+S,GACFA,EAAe5e,SAAQ,SAAA4H,GACrBA,EAAGiJ,UAAW,CACf,IARA,SAWkBgO,IAXlB,cAWG3a,EAXH,OAcHya,EAAcG,UAAUC,OAAO,YAE3BH,GACFA,EAAe5e,SAAQ,SAAA4H,GACrBA,EAAGiJ,UAAW,CACf,IAnBA,kBAsBI3M,GAtBJ,yCAwBH4O,QAAQC,MAAM,UAAd,MAGA4L,EAAcG,UAAUC,OAAO,YAE3BH,GACFA,EAAe5e,SAAQ,SAAA4H,GACrBA,EAAGiJ,UAAW,CACf,IAhCA,kBAkCI,MAlCJ,2D,sBAsCP,SAAS9H,EAAKiW,GACZ,OAAO,IAAIvc,SAAQ,SAAArC,GACjB8J,WAAW9J,EAAS4e,EACrB,GACF,CAQM,SAAeC,EAAtB,oC,kCAAO,WAA8BC,EAAWC,GAAzC,6BAAA5gB,EAAA,6DAA0D6gB,EAA1D,+BAAuE,IAAvE,SACcF,IADd,OACDhb,EADC,iBAEGib,EAAgBjb,GAFnB,iCAGG6E,EAAKqW,GAHR,uBAIYF,IAJZ,OAIHhb,EAJG,uDAMEA,GANF,4C,wBAcA,SAASmb,IACd,OAAOja,SAAS6B,cAAc,2BAA2B/B,aAAa,UACvE,CAEM,SAASkD,EAAqBkX,GACnCA,EAAIC,iBAAiB,eAAgBF,IACtC,CAEM,SAASG,EAAqBlhB,EAAGmhB,GACtC3M,QAAQC,MAAMzU,GACVA,EAAEohB,cAA0C,MAA1BphB,EAAEohB,aAAaC,OACnCC,MAAMthB,EAAEohB,aAAaD,SAErBG,MAAMH,EAET,CAEM,SAAelB,EAAtB,kC,kCAAO,WAAgCsB,GAAhC,qCAAAthB,EAAA,gEAA0CyK,EAA1C,+BAAoD,CAAC,GAClD8W,eADH,MACa,IADb,EAGCC,EAAa,IAAIC,gBACjB/X,EAAKiC,YAAW,kBAAM6V,EAAWE,OAAjB,GAA0BH,GAJ3C,SAMkBI,MAAML,EAAD,KAC1BM,QAAS,CACP,OAAU,mBACV,eAAgBd,MAEfrW,GALuB,IAM1BoX,OAAQL,EAAWK,UAZhB,cAMCna,EAND,OAcLwE,aAAaxC,GAdR,kBAgBEhC,GAhBF,2C,wBA0BA,SAASoa,EAAyBC,GACvC,cAAkB7jB,OAAOiG,KAAK4d,GAA9B,eAA0C,CAArC,IAAMhjB,EAAG,KACW,OAAnBgjB,EAAUhjB,SAAoC0G,IAAnBsc,EAAUhjB,IAAyC,KAAnBgjB,EAAUhjB,WAChEgjB,EAAUhjB,EAEpB,CACD,OAAO,IAAIijB,gBAAgBD,EAC5B,C,4YC1HoBhZ,E,WACnB,WAAYkZ,GAA2D,IAAD,OAA/CC,EAA+C,wDAAxBC,EAAwB,uDAAVtb,U,4FAAU,SACpE1F,KAAK+gB,cAAgBA,EACrB/gB,KAAK8gB,UAAYA,EACjB9gB,KAAKihB,SAAWD,EAAYpV,iBAAiB5L,KAAK8gB,WAClD9gB,KAAKkhB,WAAa,KAClBlhB,KAAKmhB,iBAAmB,KAEpBnhB,KAAKihB,SAAS3e,OAAS,IAE3BtC,KAAKihB,SAAS3gB,SAAQ,SAACyd,EAAMjgB,GAAP,OAAa,EAAKsjB,WAAWrD,EAA7B,IACtB/d,KAAKihB,SAAS3gB,SAAQ,SAACyd,EAAMjgB,GAAP,OAAa,EAAKujB,WAAWtD,EAA7B,IACtB/d,KAAKihB,SAAS3gB,SAAQ,SAACyd,EAAMjgB,GAAP,OAAa,EAAKwjB,WAAWvD,EAA7B,IACvB,C,+DAEYnf,GACX4L,YAAW,WACT5L,EAAEsI,OAAOkY,UAAUjT,IAAI,qBACvBvN,EAAEsI,OAAOkY,UAAUC,OAAO,iBAC3B,GAAE,IACJ,G,iCAEUtB,GAAO,IAAD,OACTwD,EAAgB7b,SAAS6B,cAAT,UACjBvH,KAAK8gB,UADY,8BACmB/C,EAAKzV,QAAQhL,MADhC,OAGjBikB,IAELxD,EAAK/V,iBACH,YACA,WACE,EAAKwZ,UAAUD,EAChB,IAEHxD,EAAK/V,iBACH,aACA,WACE,EAAKyZ,mBAAmBF,GACxBA,EAAcvZ,iBAAiB,aAAa,WAC1C,EAAK0Z,UAAUH,EAChB,IACDA,EAAcvZ,iBAAiB,YAAY,WACzC,EAAKwZ,UAAUD,EAChB,GACF,IAEJ,G,iCACUxD,GAAO,IAAD,OACT4D,EAAWjc,SAAS6B,cAAT,UACZvH,KAAK8gB,UADO,kCAC4B/C,EAAKzV,QAAQhL,MADzC,OAGXikB,EAAgB7b,SAAS6B,cAAT,UACjBvH,KAAK8gB,UADY,8BACmB/C,EAAKzV,QAAQhL,MADhC,QAIK,IAAvB0C,KAAK+gB,gBACPY,EAASxU,oBAAoB,eAAgBnN,KAAK4hB,cAClDD,EAAS3Z,iBAAiB,eAAgBhI,KAAK4hB,eAGjD7D,EAAK/V,iBACH,QACA6Z,KAAU,WACR,GAAK9D,EAAKzV,QAAQtH,OAUlB,OARA+c,EAAK5M,UAAY4M,EAAK5M,SACM,SAAxB4M,EAAKzV,QAAQtH,SAA4C,IAAvB,EAAK+f,gBACzCY,EAASvC,UAAUC,OAAO,qBAC1BsC,EAASvC,UAAUjT,IAAI,mBAErBoV,GACFA,EAAcnC,UAAUjT,IAAI,cAEvB,EAAK2V,WAAW/D,EACxB,GAAE,KAEN,G,kJAEkBzV,E,EAAAA,QACbyZ,EAAgB,GACI,MAApBzZ,EAAQ0Z,WACVD,EAAa,2DAAuDzZ,EAAQ0Z,W,SAEvDxB,MAAM,GAAD,OACvBlY,EAAQlE,IADe,YACRkE,EAAQ1K,IADA,eACU0K,EAAQhL,OADlB,OAC0BykB,GACpD,CACE/gB,OAAQsH,EAAQtH,OAChByf,QAAS,CACP,eAAgB,mBAChB,eAAgB/a,SACb6B,cAAc,yBACd/B,aAAa,c,cARhBe,E,gBAaaA,EAAS0b,O,cAAtBA,E,iBAEAxjB,SAAS,wBAAD,OAAyBwjB,EAAzB,KAARxjB,G,YAGAyjB,EAAiBxc,SAAS6B,cAAT,UAClBvH,KAAK8gB,UADa,sBACUxY,EAAQ1K,IADlB,0BACuC0K,EAAQhL,MAD/C,QAIR8hB,UAAUjT,IACJ,WAAnB7D,EAAQtH,OAAsB,YAAc,WAG9ChB,KAAKohB,WAAWc,GAChBliB,KAAKqhB,WAAWa,GAChBliB,KAAKshB,WAAWY,GACVX,EAAgB7b,SAAS6B,cAAT,UACjBvH,KAAK8gB,UADY,8BACmBxY,EAAQhL,MAD3B,O,mDAIEikB,EAAc3V,iBAAd,UACnB5L,KAAK8gB,UADc,sBACSxY,EAAQ1K,IADjB,0BACsC0K,EAAQhL,MAD9C,OAGRgD,SAAQ,SAACyd,EAAMjgB,GAAQ,EAAKsjB,WAAWrD,EAAO,I,+SAK9D,SAAIpX,OAAOgM,aAAchM,OAAOgM,WAAW,6BAA6BL,QAKzE,G,iCAEUyL,GAAO,IAAD,OACf,GAAK/d,KAAKmiB,WAAV,CAEA,IAAMZ,EAAgB7b,SAAS6B,cAAT,UACjBvH,KAAK8gB,UADY,8BACmB/C,EAAKzV,QAAQhL,MADhC,OAGjBikB,IAELxD,EAAK/V,iBACH,cACA,SAACpJ,GACCA,EAAEqN,iBACF,EAAKkV,iBAAmB3W,YAAW,WACjC,EAAKiX,mBAAmBF,EAAc,KACtC,EAAKJ,iBAAmB,IACzB,GAAE,IACJ,IAEHpD,EAAK/V,iBACH,YACA,SAACpJ,GACK,EAAKuiB,mBACPpW,aAAa,EAAKoW,kBAClBviB,EAAEsI,OAAOkb,SAEa1c,SAASkG,iBAAT,yCACYmS,EAAKzV,QAAQhL,MADzB,OAGRgD,SAAQ,SAACyd,EAAMjgB,GAC7B,GAAIigB,EAAKqB,UAAUiD,SAAS,WAG1B,OAFAtE,EAAKqE,aACLrE,EAAKqB,UAAUC,OAAO,UAGzB,IACD,EAAKmC,UAAUD,EAChB,IAEHxD,EAAK/V,iBACH,aACA,SAACpJ,GACC,IAAM0jB,EAAQ1jB,EAAE2jB,QAAQ,GAClBC,EAAgB9c,SAAS+c,iBAAiBH,EAAMI,QAASJ,EAAMK,SAC7Cjd,SAASkG,iBAAT,yCACYmS,EAAKzV,QAAQhL,MADzB,OAGRgD,SAAQ,SAACyd,EAAMjgB,GACzBigB,IAASyE,EAAcI,QAAQ,sBACjC7E,EAAKqB,UAAUjT,IAAI,WAEnB4R,EAAKqB,UAAUC,OAAO,UAEzB,GACF,IApD6B,CAsDjC,G,yCAEkBwD,GAA4B,IAAlBrS,EAAiB,uDAAN,IACtCqS,EAAUzD,UAAUC,OAAO,cAC3Brf,KAAKwhB,UAAUqB,EAAUrS,EAC1B,G,gCAESqS,GACJ7iB,KAAKkhB,YACPnW,aAAa/K,KAAKkhB,YAEpB2B,EAAUzD,UAAUC,OAAO,aAC5B,G,gCAESwD,GAA4B,IAAlBrS,EAAiB,uDAAN,IACzBxQ,KAAKkhB,YACPnW,aAAa/K,KAAKkhB,YAEpBlhB,KAAKkhB,WAAa1W,YAAW,WAC3BqY,EAAUzD,UAAUjT,IAAI,aACzB,GAAEqE,EACJ,I","file":"js/pages/static/page_layout_top-a2af5747a6764ddd2cf8.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 1075);\n","// TODO(Babel 8): Remove this file.\n\nvar runtime = require(\"../helpers/regeneratorRuntime\")();\nmodule.exports = runtime;\n\n// Copied from https://github.com/facebook/regenerator/blob/main/packages/runtime/runtime.js#L736=\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","var _typeof = require(\"./typeof.js\")[\"default\"];\nfunction _regeneratorRuntime() {\n \"use strict\"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE */\n module.exports = _regeneratorRuntime = function _regeneratorRuntime() {\n return e;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;\n var t,\n e = {},\n r = Object.prototype,\n n = r.hasOwnProperty,\n o = Object.defineProperty || function (t, e, r) {\n t[e] = r.value;\n },\n i = \"function\" == typeof Symbol ? Symbol : {},\n a = i.iterator || \"@@iterator\",\n c = i.asyncIterator || \"@@asyncIterator\",\n u = i.toStringTag || \"@@toStringTag\";\n function define(t, e, r) {\n return Object.defineProperty(t, e, {\n value: r,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }), t[e];\n }\n try {\n define({}, \"\");\n } catch (t) {\n define = function define(t, e, r) {\n return t[e] = r;\n };\n }\n function wrap(t, e, r, n) {\n var i = e && e.prototype instanceof Generator ? e : Generator,\n a = Object.create(i.prototype),\n c = new Context(n || []);\n return o(a, \"_invoke\", {\n value: makeInvokeMethod(t, r, c)\n }), a;\n }\n function tryCatch(t, e, r) {\n try {\n return {\n type: \"normal\",\n arg: t.call(e, r)\n };\n } catch (t) {\n return {\n type: \"throw\",\n arg: t\n };\n }\n }\n e.wrap = wrap;\n var h = \"suspendedStart\",\n l = \"suspendedYield\",\n f = \"executing\",\n s = \"completed\",\n y = {};\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n var p = {};\n define(p, a, function () {\n return this;\n });\n var d = Object.getPrototypeOf,\n v = d && d(d(values([])));\n v && v !== r && n.call(v, a) && (p = v);\n var g = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(p);\n function defineIteratorMethods(t) {\n [\"next\", \"throw\", \"return\"].forEach(function (e) {\n define(t, e, function (t) {\n return this._invoke(e, t);\n });\n });\n }\n function AsyncIterator(t, e) {\n function invoke(r, o, i, a) {\n var c = tryCatch(t[r], t, o);\n if (\"throw\" !== c.type) {\n var u = c.arg,\n h = u.value;\n return h && \"object\" == _typeof(h) && n.call(h, \"__await\") ? e.resolve(h.__await).then(function (t) {\n invoke(\"next\", t, i, a);\n }, function (t) {\n invoke(\"throw\", t, i, a);\n }) : e.resolve(h).then(function (t) {\n u.value = t, i(u);\n }, function (t) {\n return invoke(\"throw\", t, i, a);\n });\n }\n a(c.arg);\n }\n var r;\n o(this, \"_invoke\", {\n value: function value(t, n) {\n function callInvokeWithMethodAndArg() {\n return new e(function (e, r) {\n invoke(t, n, e, r);\n });\n }\n return r = r ? r.then(callInvokeWithMethodAndArg, callInvokeWithMethodAndArg) : callInvokeWithMethodAndArg();\n }\n });\n }\n function makeInvokeMethod(e, r, n) {\n var o = h;\n return function (i, a) {\n if (o === f) throw new Error(\"Generator is already running\");\n if (o === s) {\n if (\"throw\" === i) throw a;\n return {\n value: t,\n done: !0\n };\n }\n for (n.method = i, n.arg = a;;) {\n var c = n.delegate;\n if (c) {\n var u = maybeInvokeDelegate(c, n);\n if (u) {\n if (u === y) continue;\n return u;\n }\n }\n if (\"next\" === n.method) n.sent = n._sent = n.arg;else if (\"throw\" === n.method) {\n if (o === h) throw o = s, n.arg;\n n.dispatchException(n.arg);\n } else \"return\" === n.method && n.abrupt(\"return\", n.arg);\n o = f;\n var p = tryCatch(e, r, n);\n if (\"normal\" === p.type) {\n if (o = n.done ? s : l, p.arg === y) continue;\n return {\n value: p.arg,\n done: n.done\n };\n }\n \"throw\" === p.type && (o = s, n.method = \"throw\", n.arg = p.arg);\n }\n };\n }\n function maybeInvokeDelegate(e, r) {\n var n = r.method,\n o = e.iterator[n];\n if (o === t) return r.delegate = null, \"throw\" === n && e.iterator[\"return\"] && (r.method = \"return\", r.arg = t, maybeInvokeDelegate(e, r), \"throw\" === r.method) || \"return\" !== n && (r.method = \"throw\", r.arg = new TypeError(\"The iterator does not provide a '\" + n + \"' method\")), y;\n var i = tryCatch(o, e.iterator, r.arg);\n if (\"throw\" === i.type) return r.method = \"throw\", r.arg = i.arg, r.delegate = null, y;\n var a = i.arg;\n return a ? a.done ? (r[e.resultName] = a.value, r.next = e.nextLoc, \"return\" !== r.method && (r.method = \"next\", r.arg = t), r.delegate = null, y) : a : (r.method = \"throw\", r.arg = new TypeError(\"iterator result is not an object\"), r.delegate = null, y);\n }\n function pushTryEntry(t) {\n var e = {\n tryLoc: t[0]\n };\n 1 in t && (e.catchLoc = t[1]), 2 in t && (e.finallyLoc = t[2], e.afterLoc = t[3]), this.tryEntries.push(e);\n }\n function resetTryEntry(t) {\n var e = t.completion || {};\n e.type = \"normal\", delete e.arg, t.completion = e;\n }\n function Context(t) {\n this.tryEntries = [{\n tryLoc: \"root\"\n }], t.forEach(pushTryEntry, this), this.reset(!0);\n }\n function values(e) {\n if (e || \"\" === e) {\n var r = e[a];\n if (r) return r.call(e);\n if (\"function\" == typeof e.next) return e;\n if (!isNaN(e.length)) {\n var o = -1,\n i = function next() {\n for (; ++o < e.length;) if (n.call(e, o)) return next.value = e[o], next.done = !1, next;\n return next.value = t, next.done = !0, next;\n };\n return i.next = i;\n }\n }\n throw new TypeError(_typeof(e) + \" is not iterable\");\n }\n return GeneratorFunction.prototype = GeneratorFunctionPrototype, o(g, \"constructor\", {\n value: GeneratorFunctionPrototype,\n configurable: !0\n }), o(GeneratorFunctionPrototype, \"constructor\", {\n value: GeneratorFunction,\n configurable: !0\n }), GeneratorFunction.displayName = define(GeneratorFunctionPrototype, u, \"GeneratorFunction\"), e.isGeneratorFunction = function (t) {\n var e = \"function\" == typeof t && t.constructor;\n return !!e && (e === GeneratorFunction || \"GeneratorFunction\" === (e.displayName || e.name));\n }, e.mark = function (t) {\n return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, define(t, u, \"GeneratorFunction\")), t.prototype = Object.create(g), t;\n }, e.awrap = function (t) {\n return {\n __await: t\n };\n }, defineIteratorMethods(AsyncIterator.prototype), define(AsyncIterator.prototype, c, function () {\n return this;\n }), e.AsyncIterator = AsyncIterator, e.async = function (t, r, n, o, i) {\n void 0 === i && (i = Promise);\n var a = new AsyncIterator(wrap(t, r, n, o), i);\n return e.isGeneratorFunction(r) ? a : a.next().then(function (t) {\n return t.done ? t.value : a.next();\n });\n }, defineIteratorMethods(g), define(g, u, \"Generator\"), define(g, a, function () {\n return this;\n }), define(g, \"toString\", function () {\n return \"[object Generator]\";\n }), e.keys = function (t) {\n var e = Object(t),\n r = [];\n for (var n in e) r.push(n);\n return r.reverse(), function next() {\n for (; r.length;) {\n var t = r.pop();\n if (t in e) return next.value = t, next.done = !1, next;\n }\n return next.done = !0, next;\n };\n }, e.values = values, Context.prototype = {\n constructor: Context,\n reset: function reset(e) {\n if (this.prev = 0, this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = \"next\", this.arg = t, this.tryEntries.forEach(resetTryEntry), !e) for (var r in this) \"t\" === r.charAt(0) && n.call(this, r) && !isNaN(+r.slice(1)) && (this[r] = t);\n },\n stop: function stop() {\n this.done = !0;\n var t = this.tryEntries[0].completion;\n if (\"throw\" === t.type) throw t.arg;\n return this.rval;\n },\n dispatchException: function dispatchException(e) {\n if (this.done) throw e;\n var r = this;\n function handle(n, o) {\n return a.type = \"throw\", a.arg = e, r.next = n, o && (r.method = \"next\", r.arg = t), !!o;\n }\n for (var o = this.tryEntries.length - 1; o >= 0; --o) {\n var i = this.tryEntries[o],\n a = i.completion;\n if (\"root\" === i.tryLoc) return handle(\"end\");\n if (i.tryLoc <= this.prev) {\n var c = n.call(i, \"catchLoc\"),\n u = n.call(i, \"finallyLoc\");\n if (c && u) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n } else if (c) {\n if (this.prev < i.catchLoc) return handle(i.catchLoc, !0);\n } else {\n if (!u) throw new Error(\"try statement without catch or finally\");\n if (this.prev < i.finallyLoc) return handle(i.finallyLoc);\n }\n }\n }\n },\n abrupt: function abrupt(t, e) {\n for (var r = this.tryEntries.length - 1; r >= 0; --r) {\n var o = this.tryEntries[r];\n if (o.tryLoc <= this.prev && n.call(o, \"finallyLoc\") && this.prev < o.finallyLoc) {\n var i = o;\n break;\n }\n }\n i && (\"break\" === t || \"continue\" === t) && i.tryLoc <= e && e <= i.finallyLoc && (i = null);\n var a = i ? i.completion : {};\n return a.type = t, a.arg = e, i ? (this.method = \"next\", this.next = i.finallyLoc, y) : this.complete(a);\n },\n complete: function complete(t, e) {\n if (\"throw\" === t.type) throw t.arg;\n return \"break\" === t.type || \"continue\" === t.type ? this.next = t.arg : \"return\" === t.type ? (this.rval = this.arg = t.arg, this.method = \"return\", this.next = \"end\") : \"normal\" === t.type && e && (this.next = e), y;\n },\n finish: function finish(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.finallyLoc === t) return this.complete(r.completion, r.afterLoc), resetTryEntry(r), y;\n }\n },\n \"catch\": function _catch(t) {\n for (var e = this.tryEntries.length - 1; e >= 0; --e) {\n var r = this.tryEntries[e];\n if (r.tryLoc === t) {\n var n = r.completion;\n if (\"throw\" === n.type) {\n var o = n.arg;\n resetTryEntry(r);\n }\n return o;\n }\n }\n throw new Error(\"illegal catch attempt\");\n },\n delegateYield: function delegateYield(e, r, n) {\n return this.delegate = {\n iterator: values(e),\n resultName: r,\n nextLoc: n\n }, \"next\" === this.method && (this.arg = t), y;\n }\n }, e;\n}\nmodule.exports = _regeneratorRuntime, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","var UrlParser = require('./urlParser');\n\nvar parser = new UrlParser();\nmodule.exports = parser;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar _require = require('./util'),\n getQueryParams = _require.getQueryParams;\n\nfunction UrlParser() {\n for (var _i = 0, _arr = ['parseProvider', 'parse', 'bind', 'create']; _i < _arr.length; _i++) {\n var key = _arr[_i];\n this[key] = this[key].bind(this);\n }\n\n this.plugins = {};\n}\n\nmodule.exports = UrlParser;\n\nUrlParser.prototype.parseProvider = function (url) {\n var match = url.match(/(?:(?:https?:)?\\/\\/)?(?:[^.]+\\.)?(\\w+)\\./i);\n return match ? match[1] : undefined;\n};\n\nUrlParser.prototype.parse = function (url) {\n if (typeof url === 'undefined') {\n return undefined;\n }\n\n var provider = this.parseProvider(url);\n var result;\n var plugin = this.plugins[provider];\n\n if (!provider || !plugin || !plugin.parse) {\n return undefined;\n }\n\n result = plugin.parse.call(plugin, url, getQueryParams(url));\n\n if (result) {\n result = removeEmptyParameters(result);\n result.provider = plugin.provider;\n }\n\n return result;\n};\n\nUrlParser.prototype.bind = function (plugin) {\n this.plugins[plugin.provider] = plugin;\n\n if (plugin.alternatives) {\n for (var i = 0; i < plugin.alternatives.length; i += 1) {\n this.plugins[plugin.alternatives[i]] = plugin;\n }\n }\n};\n\nUrlParser.prototype.create = function (op) {\n if (_typeof(op) !== 'object' || _typeof(op.videoInfo) !== 'object') {\n return undefined;\n }\n\n var vi = op.videoInfo;\n var params = op.params;\n var plugin = this.plugins[vi.provider];\n params = params === 'internal' ? vi.params : params || {};\n\n if (plugin) {\n op.format = op.format || plugin.defaultFormat; // eslint-disable-next-line no-prototype-builtins\n\n if (plugin.formats.hasOwnProperty(op.format)) {\n return plugin.formats[op.format].apply(plugin, [vi, Object.assign({}, params)]);\n }\n }\n\n return undefined;\n};\n\nfunction removeEmptyParameters(result) {\n if (result.params && Object.keys(result.params).length === 0) {\n delete result.params;\n }\n\n return result;\n}","class BlockCustomHtml extends HTMLElement {\n constructor() {\n super();\n const templateId = this.getAttribute('template-id');\n const template = document.getElementById(templateId).content.cloneNode(true);\n\n const shadow = this.attachShadow({ mode: 'open' });\n shadow.appendChild(template);\n }\n}\n\nexport { BlockCustomHtml };\n","import KeenSlider from 'keen-slider';\nimport { BlockCustomHtml } from '../../../javascripts/components/BlockCustomHtml';\nimport Like from '../../../javascripts/components/Like';\nimport ViewMode from '../../../javascripts/editor/view_mode';\nimport '../../../styles/layout/_editor';\nimport { bindCustomLinkPostEvent } from '../../../javascripts/custom_link_menu'\n\nvar PageLayoutTop = {\n requestInitPosts: function (initPostUrl) {\n $.ajax({\n type: 'GET',\n url: initPostUrl,\n dataType: 'script',\n }).done((response) => { });\n },\n initPostsByCallbackAndPostTagId: function (initPostUrl, postTagId) {\n let self = this;\n if (window.IntersectionObserver) {\n const options = {\n root: null,\n rootMargin: '100px',\n threshold: 0,\n };\n\n function handleIntersect(entries) {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n self.requestInitPosts(initPostUrl);\n observer.unobserve(entry.target);\n }\n });\n }\n\n let observer = new IntersectionObserver(handleIntersect, options);\n observer.observe(document.querySelector(postTagId));\n } else {\n self.requestInitPosts(initPostUrl);\n }\n },\n bindCustomLinkPostEvent: function(document) {\n bindCustomLinkPostEvent(document)\n },\n};\n\nif (!customElements.get('block-custom-html')) {\n customElements.define('block-custom-html', BlockCustomHtml);\n}\n\nif (!window?.Coorum) {\n window.Coorum = {};\n}\nwindow.Coorum.PageLayoutTop = PageLayoutTop;\nwindow.Coorum.KeenSlider = KeenSlider;\nwindow.Coorum.Like = Like;\n\n$(() => {\n const viewMode = new ViewMode('oembed[url]');\n viewMode.replace();\n});\n","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return (module.exports = _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, module.exports.__esModule = true, module.exports[\"default\"] = module.exports), _typeof(o);\n}\nmodule.exports = _typeof, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","import { jqueryAjaxBeforeSend } from \"./api_utils\";\n\n\nexport const initCustomLinkMenu = () => {\n document.addEventListener(\"DOMContentLoaded\", () => {\n bindCustomLinkMenuEvent(document);\n bindCustomLinkPostEvent(document);\n });\n};\n\nexport const bindCustomLinkMenuEvent = (el) => {\n const customeLinks = $(el).find(\".st-Nav_Link[href^=http],.st-GroupedNav_Link[href^=http],.st-NavFooter_Link[href^=http]\");\n customeLinks.each(function () {\n $(this).on(\"click\", function (e) {\n $.ajax({\n type: 'GET',\n url: `/menus/${this.dataset.id}`,\n async: true,\n data: { id: this.dataset.id },\n beforeSend: jqueryAjaxBeforeSend,\n }).done(function (data) {\n ;\n });\n });\n });\n};\n\nexport const bindCustomLinkPostEvent = (el) => {\n const customeLinks = $(el).find(\".announcement-custom-link[href^=http]\");\n customeLinks.each(function () {\n $(this).on(\"click\", function (e) {\n $.ajax({\n type: 'GET',\n url: `/announcements/${this.dataset.id}/custom_link_postproc`,\n async: true,\n data: { id: this.dataset.id },\n beforeSend: jqueryAjaxBeforeSend,\n }).done(function (data) {\n ;\n });\n });\n });\n};\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n/** Error message constants. */\n\n\nvar FUNC_ERROR_TEXT = 'Expected a function';\n/* Built-in method references for those with the same name as other `lodash` methods. */\n\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\n\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n\n wait = toNumber(wait) || 0;\n\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time; // Start the timer for the trailing edge.\n\n timerId = setTimeout(timerExpired, wait); // Invoke the leading edge.\n\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime; // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n\n return lastCallTime === undefined || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;\n }\n\n function timerExpired() {\n var time = now();\n\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n } // Restart the timer.\n\n\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined; // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n\n return result;\n }\n\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;","var root = require('./_root');\n/** Built-in value references. */\n\n\nvar _Symbol = root.Symbol;\nmodule.exports = _Symbol;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar freeGlobal = require('./_freeGlobal');\n/** Detect free variable `self`. */\n\n\nvar freeSelf = (typeof self === \"undefined\" ? \"undefined\" : _typeof(self)) == 'object' && self && self.Object === Object && self;\n/** Used as a reference to the global object. */\n\nvar root = freeGlobal || freeSelf || Function('return this')();\nmodule.exports = root;","var _n = function n() {\n return _n = Object.assign || function (n) {\n for (var t, i = 1, e = arguments.length; i < e; i++) {\n for (var r in t = arguments[i]) {\n Object.prototype.hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n }\n\n return n;\n }, _n.apply(this, arguments);\n};\n\nfunction t(n, t, i) {\n if (i || 2 === arguments.length) for (var e, r = 0, a = t.length; r < a; r++) {\n !e && r in t || (e || (e = Array.prototype.slice.call(t, 0, r)), e[r] = t[r]);\n }\n return n.concat(e || Array.prototype.slice.call(t));\n}\n\nfunction i(n) {\n return Array.prototype.slice.call(n);\n}\n\nfunction e() {\n return Date.now();\n}\n\nfunction r(n, t, i) {\n if (t = \"data-keen-slider-\" + t, null === i) return n.removeAttribute(t);\n n.setAttribute(t, i || \"\");\n}\n\nfunction a(n, t) {\n return t = t || document, \"function\" == typeof n && (n = n(t)), Array.isArray(n) ? n : \"string\" == typeof n ? i(t.querySelectorAll(n)) : n instanceof HTMLElement ? [n] : n instanceof NodeList ? i(n) : [];\n}\n\nfunction o(n) {\n n.raw && (n = n.raw), n.cancelable && !n.defaultPrevented && n.preventDefault();\n}\n\nfunction u(n) {\n n.raw && (n = n.raw), n.stopPropagation && n.stopPropagation();\n}\n\nfunction s() {\n var n = [];\n return {\n add: function add(t, i, e, r) {\n t.addListener ? t.addListener(e) : t.addEventListener(i, e, r), n.push([t, i, e, r]);\n },\n input: function input(n, t, i, e) {\n this.add(n, t, function (n) {\n return function (t) {\n t.nativeEvent && (t = t.nativeEvent);\n var i = t.changedTouches || [],\n e = t.targetTouches || [],\n r = t.detail && t.detail.x ? t.detail : null;\n return n({\n id: r ? r.identifier ? r.identifier : \"i\" : e[0] ? e[0] ? e[0].identifier : \"e\" : \"d\",\n idChanged: r ? r.identifier ? r.identifier : \"i\" : i[0] ? i[0] ? i[0].identifier : \"e\" : \"d\",\n raw: t,\n x: r && r.x ? r.x : e[0] ? e[0].screenX : r ? r.x : t.pageX,\n y: r && r.y ? r.y : e[0] ? e[0].screenY : r ? r.y : t.pageY\n });\n };\n }(i), e);\n },\n purge: function purge() {\n n.forEach(function (n) {\n n[0].removeListener ? n[0].removeListener(n[2]) : n[0].removeEventListener(n[1], n[2], n[3]);\n }), n = [];\n }\n };\n}\n\nfunction c(n, t, i) {\n return Math.min(Math.max(n, t), i);\n}\n\nfunction d(n) {\n return (n > 0 ? 1 : 0) - (n < 0 ? 1 : 0) || +n;\n}\n\nfunction l(n) {\n return n.getBoundingClientRect();\n}\n\nfunction f(n, t, i, e) {\n var r = n && n[t];\n return null == r ? i : e && \"function\" == typeof r ? r() : r;\n}\n\nfunction p(n) {\n return Math.round(1e6 * n) / 1e6;\n}\n\nfunction v(n) {\n var t, i, e, r, a, o;\n\n function u(t) {\n o || (o = t), s(!0);\n var a = t - o;\n a > e && (a = e);\n var l = r[i];\n if (l[3] < a) return i++, u(t);\n var f = l[2],\n p = l[4],\n v = l[0],\n m = l[1] * (0, l[5])(0 === p ? 1 : (a - f) / p);\n if (m && n.track.to(v + m), a < e) return d();\n o = null, s(!1), c(null), n.emit(\"animationEnded\");\n }\n\n function s(n) {\n t.active = n;\n }\n\n function c(n) {\n t.targetIdx = n;\n }\n\n function d() {\n var n;\n n = u, a = window.requestAnimationFrame(n);\n }\n\n function l() {\n var t;\n t = a, window.cancelAnimationFrame(t), s(!1), c(null), o && n.emit(\"animationStopped\"), o = null;\n }\n\n return t = {\n active: !1,\n start: function start(t) {\n if (l(), n.track.details) {\n var a = 0,\n o = n.track.details.position;\n i = 0, e = 0, r = t.map(function (n) {\n var t,\n i = o,\n r = null !== (t = n.earlyExit) && void 0 !== t ? t : n.duration,\n u = n.easing,\n s = n.distance * u(r / n.duration) || 0;\n o += s;\n var c = e;\n return e += r, a += s, [i, n.distance, c, e, n.duration, u];\n }), c(n.track.distToIdx(a)), d(), n.emit(\"animationStarted\");\n }\n },\n stop: l,\n targetIdx: null\n };\n}\n\nfunction m(n) {\n var i,\n r,\n a,\n o,\n u,\n s,\n l,\n v,\n m,\n h,\n g,\n b,\n x,\n y = 1 / 0,\n k = [],\n w = null,\n M = 0;\n\n function T(n) {\n _(M + n);\n }\n\n function C(n) {\n var t = E(M + n).abs;\n return A(t) ? t : null;\n }\n\n function E(n) {\n var i = Math.floor(Math.abs(n / r)),\n e = (n % r + r) % r,\n a = d(n),\n o = l.indexOf(t([], l, !0).reduce(function (n, t) {\n return Math.abs(t - e) < Math.abs(n - e) ? t : n;\n })),\n u = o;\n return a < 0 && 0 !== e && i++, o === s && (u = 0, i += a > 0 ? 1 : -1), {\n abs: u + i * s * a,\n origin: o,\n rel: u\n };\n }\n\n function z(n, t, i) {\n var e;\n if (t || !L()) return I(n, i);\n if (!A(n)) return null;\n var r = E(null != i ? i : M),\n a = r.abs,\n o = n - r.rel,\n u = a + o;\n e = I(u);\n var c = I(u - s * Math.sign(o));\n return (null !== c && Math.abs(c) < Math.abs(e) || null === e) && (e = c), p(e);\n }\n\n function I(n, t) {\n if (null == t && (t = p(M)), !A(n) || null === n) return null;\n n = Math.round(n);\n var i = E(t),\n e = i.abs,\n a = i.rel,\n o = i.origin,\n u = S(n),\n c = (t % r + r) % r,\n d = l[o],\n f = Math.floor((n - (e - a)) / s) * r;\n return p(d - c - d + l[u] + f + (o === s ? r : 0));\n }\n\n function A(n) {\n return D(n) === n;\n }\n\n function D(n) {\n return c(n, v, m);\n }\n\n function L() {\n return o.loop;\n }\n\n function S(n) {\n return (n % s + s) % s;\n }\n\n function _(t) {\n var i;\n i = t - M, k.push({\n distance: i,\n timestamp: e()\n }), k.length > 6 && (k = k.slice(-6)), M = Math.round(1e6 * t) / 1e6;\n var r = O().abs;\n\n if (r !== w) {\n var a = null !== w;\n w = r, a && n.emit(\"slideChanged\");\n }\n }\n\n function O(t) {\n var e = t ? null : function () {\n if (s) {\n var n = L(),\n t = n ? (M % r + r) % r : M,\n i = (n ? M % r : M) - u[0][2],\n e = 0 - (i < 0 && n ? r - Math.abs(i) : i),\n c = 0,\n l = E(M),\n f = l.abs,\n p = l.rel,\n y = u[p][2],\n k = u.map(function (t, i) {\n var a = e + c;\n (a < 0 - t[0] || a > 1) && (a += (Math.abs(a) > r - 1 && n ? r : 0) * d(-a));\n var u = i - p,\n l = Math.sign(u),\n v = u + f;\n n && (-1 === l && a > y && (v += s), 1 === l && a < y && (v -= s), null !== h && v < h && (a += r), null !== g && v > g && (a -= r));\n var m = a + t[0] + t[1],\n b = Math.max(a >= 0 && m <= 1 ? 1 : m < 0 || a > 1 ? 0 : a < 0 ? Math.min(1, (t[0] + a) / t[0]) : (1 - a) / t[0], 0);\n return c += t[0] + t[1], {\n abs: v,\n distance: o.rtl ? -1 * a + 1 - t[0] : a,\n portion: b,\n size: t[0]\n };\n });\n return f = D(f), p = S(f), {\n abs: D(f),\n length: a,\n max: x,\n maxIdx: m,\n min: b,\n minIdx: v,\n position: M,\n progress: n ? t / r : M / a,\n rel: p,\n slides: k\n };\n }\n }();\n return i.details = e, n.emit(\"detailsChanged\"), e;\n }\n\n return i = {\n absToRel: S,\n add: T,\n details: null,\n distToIdx: C,\n idxToDist: z,\n init: function init(t) {\n if (function () {\n if (o = n.options, u = (o.trackConfig || []).map(function (n) {\n return [f(n, \"size\", 1), f(n, \"spacing\", 0), f(n, \"origin\", 0)];\n }), s = u.length) {\n r = p(u.reduce(function (n, t) {\n return n + t[0] + t[1];\n }, 0));\n var t = s - 1;\n a = p(r + u[0][2] - u[t][0] - u[t][2] - u[t][1]), (l = u.reduce(function (n, t) {\n if (!n) return [0];\n var i = u[n.length - 1],\n e = n[n.length - 1] + (i[0] + i[2]) + i[1];\n return e -= t[2], n[n.length - 1] > e && (e = n[n.length - 1]), n.push(e), n;\n }, null)).push(r);\n }\n }(), !s) return O(!0);\n var i;\n !function () {\n var t = n.options.range,\n i = n.options.loop;\n h = v = i ? f(i, \"min\", -1 / 0) : 0, g = m = i ? f(i, \"max\", y) : u.length - 1;\n var e = f(t, \"min\", null),\n r = f(t, \"max\", null);\n e && (v = e), r && (m = r), b = v === -1 / 0 ? v : n.track.idxToDist(v || 0, !0, 0), x = m === y ? m : z(m, !0, 0), null === r && (g = m), f(t, \"align\", !1) && m !== y && 0 === u[S(m)][2] && (x -= 1 - u[S(m)][0], m = C(x)), b = p(b), x = p(x);\n }(), i = t, Number(i) === i ? T(I(D(t))) : O();\n },\n to: _,\n velocity: function velocity() {\n var n = e(),\n t = k.reduce(function (t, i) {\n var e = i.distance,\n r = i.timestamp;\n return n - r > 200 || (d(e) !== d(t.distance) && t.distance && (t = {\n distance: 0,\n lastTimestamp: 0,\n time: 0\n }), t.time && (t.distance += e), t.lastTimestamp && (t.time += r - t.lastTimestamp), t.lastTimestamp = r), t;\n }, {\n distance: 0,\n lastTimestamp: 0,\n time: 0\n });\n return t.distance / t.time || 0;\n }\n };\n}\n\nfunction h(n) {\n var t, i, e, r, a, o, u;\n\n function s(n) {\n return 2 * n;\n }\n\n function l(n) {\n return c(n, o, u);\n }\n\n function f(n) {\n return 1 - Math.pow(1 - n, 3);\n }\n\n function p() {\n h();\n var t = \"free-snap\" === n.options.mode,\n i = n.track,\n o = i.velocity();\n e = d(o);\n var u = n.track.details,\n c = [];\n\n if (o || !t) {\n var p = v(o),\n m = p.dist,\n g = p.dur;\n\n if (g = s(g), m *= e, t) {\n var b = i.idxToDist(i.distToIdx(m), !0);\n b && (m = b);\n }\n\n c.push({\n distance: m,\n duration: g,\n easing: f\n });\n var x = u.position,\n y = x + m;\n\n if (y < r || y > a) {\n var k = y < r ? r - x : a - x,\n w = 0,\n M = o;\n\n if (d(k) === e) {\n var T = Math.min(Math.abs(k) / Math.abs(m), 1),\n C = function (n) {\n return 1 - Math.pow(1 - n, 1 / 3);\n }(T) * g;\n\n c[0].earlyExit = C, M = o * (1 - T);\n } else c[0].earlyExit = 0, w += k;\n\n var E = v(M, 100),\n z = E.dist * e;\n n.options.rubberband && (c.push({\n distance: z,\n duration: s(E.dur),\n easing: f\n }), c.push({\n distance: -z + w,\n duration: 500,\n easing: f\n }));\n }\n\n n.animator.start(c);\n } else n.moveToIdx(l(u.abs), !0, {\n duration: 500,\n easing: function easing(n) {\n return 1 + --n * n * n * n * n;\n }\n });\n }\n\n function v(n, t) {\n void 0 === t && (t = 1e3);\n var i = 147e-9 + (n = Math.abs(n)) / t;\n return {\n dist: Math.pow(n, 2) / i,\n dur: n / i\n };\n }\n\n function m() {\n var t = n.track.details;\n t && (r = t.min, a = t.max, o = t.minIdx, u = t.maxIdx);\n }\n\n function h() {\n n.animator.stop();\n }\n\n n.on(\"updated\", m), n.on(\"optionsChanged\", m), n.on(\"created\", m), n.on(\"dragStarted\", function () {\n h(), t = i = n.track.details.abs;\n }), n.on(\"dragEnded\", function () {\n var e = n.options.mode;\n \"snap\" === e && function () {\n var e = n.track,\n o = n.track.details,\n u = o.position,\n s = d(e.velocity());\n (u > a || u < r) && (s = 0);\n var c = t + s;\n 0 === o.slides[e.absToRel(c)].portion && (c -= s), t !== i && (c = i), d(e.idxToDist(c, !0)) !== s && (c += s), c = l(c);\n var f = e.idxToDist(c, !0);\n n.animator.start([{\n distance: f,\n duration: 500,\n easing: function easing(n) {\n return 1 + --n * n * n * n * n;\n }\n }]);\n }(), \"free\" !== e && \"free-snap\" !== e || p();\n }), n.on(\"dragged\", function () {\n i = n.track.details.abs;\n });\n}\n\nfunction g(n) {\n var t,\n i,\n e,\n l,\n f,\n p,\n v,\n m,\n h,\n g,\n b,\n x,\n y,\n k,\n w,\n M,\n T,\n C,\n E = s();\n\n function z(a) {\n if (p && m === a.id) {\n var s = L(a);\n\n if (h) {\n if (!D(a)) return A(a);\n g = s, h = !1, n.emit(\"dragChecked\");\n }\n\n if (M) return g = s;\n o(a);\n\n var y = function (t) {\n if (T === -1 / 0 && C === 1 / 0) return t;\n var e = n.track.details,\n r = e.length,\n a = e.position,\n o = c(t, T - a, C - a);\n if (0 === r) return 0;\n if (!n.options.rubberband) return o;\n if (a <= C && a >= T) return t;\n if (a < T && i > 0 || a > C && i < 0) return t;\n var u = (a < T ? a - T : a - C) / r,\n s = l * r,\n d = Math.abs(u * s),\n p = Math.max(0, 1 - d / f * 2);\n return p * p * t;\n }(v(g - s) / l * e);\n\n i = d(y);\n var k = n.track.details.position;\n (k > T && k < C || k === T && i > 0 || k === C && i < 0) && u(a), b += y, !x && Math.abs(b * l) > 5 && (x = !0, r(t, \"moves\", \"\")), n.track.add(y), g = s, n.emit(\"dragged\");\n }\n }\n\n function I(t) {\n !p && n.track.details && n.track.details.length && (x = !1, b = 0, p = !0, h = !0, m = t.id, D(t), g = L(t), n.emit(\"dragStarted\"));\n }\n\n function A(i) {\n p && m === i.idChanged && (r(t, \"moves\", null), p = !1, n.emit(\"dragEnded\"));\n }\n\n function D(n) {\n var t = S(),\n i = t ? n.y : n.x,\n e = t ? n.x : n.y,\n r = void 0 !== y && void 0 !== k && Math.abs(k - e) <= Math.abs(y - i);\n return y = i, k = e, r;\n }\n\n function L(n) {\n return S() ? n.y : n.x;\n }\n\n function S() {\n return n.options.vertical;\n }\n\n function _() {\n l = n.size, f = S() ? window.innerHeight : window.innerWidth;\n var t = n.track.details;\n t && (T = t.min, C = t.max);\n }\n\n function O() {\n if (E.purge(), n.options.drag && !n.options.disabled) {\n var i;\n i = n.options.dragSpeed || 1, v = \"function\" == typeof i ? i : function (n) {\n return n * i;\n }, e = n.options.rtl ? -1 : 1, _(), t = n.container, function () {\n var n = \"data-keen-slider-clickable\";\n a(\"[\".concat(n, \"]:not([\").concat(n, \"=false])\"), t).map(function (n) {\n E.add(n, \"mousedown\", u), E.add(n, \"touchstart\", u);\n });\n }(), E.add(t, \"dragstart\", function (n) {\n o(n);\n }), E.input(t, \"ksDragStart\", I), E.input(t, \"ksDrag\", z), E.input(t, \"ksDragEnd\", A), E.input(t, \"mousedown\", I), E.input(t, \"mousemove\", z), E.input(t, \"mouseleave\", A), E.input(t, \"mouseup\", A), E.input(t, \"touchstart\", I, {\n passive: !0\n }), E.input(t, \"touchmove\", z, {\n passive: !1\n }), E.input(t, \"touchend\", A), E.input(t, \"touchcancel\", A), E.add(window, \"wheel\", function (n) {\n p && o(n);\n });\n var r = \"data-keen-slider-scrollable\";\n a(\"[\".concat(r, \"]:not([\").concat(r, \"=false])\"), n.container).map(function (n) {\n return function (n) {\n var t;\n E.input(n, \"touchstart\", function (n) {\n t = L(n), M = !0, w = !0;\n }, {\n passive: !0\n }), E.input(n, \"touchmove\", function (i) {\n var e = S(),\n r = e ? n.scrollHeight - n.clientHeight : n.scrollWidth - n.clientWidth,\n a = t - L(i),\n u = e ? n.scrollTop : n.scrollLeft,\n s = e && \"scroll\" === n.style.overflowY || !e && \"scroll\" === n.style.overflowX;\n if (t = L(i), (a < 0 && u > 0 || a > 0 && u < r) && w && s) return M = !0;\n w = !1, o(i), M = !1;\n }), E.input(n, \"touchend\", function () {\n M = !1;\n });\n }(n);\n });\n }\n }\n\n n.on(\"updated\", _), n.on(\"optionsChanged\", O), n.on(\"created\", O), n.on(\"destroyed\", E.purge);\n}\n\nfunction b(n) {\n var t,\n i,\n e = null;\n\n function r(t, i, e) {\n n.animator.active ? o(t, i, e) : requestAnimationFrame(function () {\n return o(t, i, e);\n });\n }\n\n function a() {\n r(!1, !1, i);\n }\n\n function o(i, r, a) {\n var o = 0,\n c = n.size,\n d = n.track.details;\n\n if (d && t) {\n var l = d.slides;\n t.forEach(function (n, t) {\n if (i) !e && r && u(n, null, a), s(n, null, a);else {\n if (!l[t]) return;\n var d = l[t].size * c;\n !e && r && u(n, d, a), s(n, l[t].distance * c - o, a), o += d;\n }\n });\n }\n }\n\n function u(n, t, i) {\n var e = i ? \"height\" : \"width\";\n null !== t && (t += \"px\"), n.style[\"min-\" + e] = t, n.style[\"max-\" + e] = t;\n }\n\n function s(t, i, e) {\n if (null !== i) {\n \"performance\" === n.options.renderMode && (i = Math.round(i));\n var r = e ? i : 0;\n i = \"translate3d(\".concat(e ? 0 : i, \"px, \").concat(r, \"px, 0)\");\n }\n\n t.style.transform = i, t.style[\"-webkit-transform\"] = i;\n }\n\n function c() {\n t && r(!0, !0, i), n.on(\"detailsChanged\", a, !0);\n }\n\n function d() {\n r(!1, !0, i);\n }\n\n function l() {\n c(), i = n.options.vertical, n.options.disabled || \"custom\" === n.options.renderMode || (e = \"auto\" === f(n.options.slides, \"perView\", null), n.on(\"detailsChanged\", a), (t = n.slides).length && d());\n }\n\n n.on(\"created\", l), n.on(\"optionsChanged\", l), n.on(\"updated\", d), n.on(\"destroyed\", c);\n}\n\nfunction x(t, i) {\n return function (e) {\n var o,\n u,\n c,\n d,\n p,\n v,\n m = s();\n\n function h(n) {\n var t;\n r(e.container, \"reverse\", \"rtl\" !== (t = e.container, window.getComputedStyle(t, null).getPropertyValue(\"direction\")) || n ? null : \"\"), r(e.container, \"v\", e.options.vertical && !n ? \"\" : null), r(e.container, \"disabled\", e.options.disabled && !n ? \"\" : null);\n }\n\n function g() {\n b() && M();\n }\n\n function b() {\n var t = null;\n if (d.forEach(function (n) {\n n.matches && (t = n.__media);\n }), t === o) return !1;\n o = t;\n var i = t ? c.breakpoints[t] : c;\n return e.options = _n(_n({}, c), i), h(), I(), A(), C(), !0;\n }\n\n function x(n) {\n var t = l(n);\n return (e.options.vertical ? t.height : t.width) / e.size || 1;\n }\n\n function y() {\n return e.options.trackConfig.length;\n }\n\n function k(t) {\n for (var r in o = !1, c = _n(_n({}, i), t), m.purge(), u = e.size, d = [], c.breakpoints || []) {\n var a = window.matchMedia(r);\n a.__media = r, d.push(a), m.add(a, \"change\", g);\n }\n\n m.add(window, \"orientationchange\", z), m.add(window, \"resize\", E), b();\n }\n\n function w(n) {\n e.animator.stop();\n var t = e.track.details;\n e.track.init(null != n ? n : t ? t.abs : 0);\n }\n\n function M(n) {\n w(n), e.emit(\"optionsChanged\");\n }\n\n function T(n, t) {\n if (n) return k(n), void M(t);\n I(), A();\n var i = y();\n C(), y() !== i ? M(t) : w(t), e.emit(\"updated\");\n }\n\n function C() {\n var n = e.options.slides;\n if (\"function\" == typeof n) return e.options.trackConfig = n(e.size, e.slides);\n\n for (var t = e.slides, i = t.length, r = \"number\" == typeof n ? n : f(n, \"number\", i, !0), a = [], o = f(n, \"perView\", 1, !0), u = f(n, \"spacing\", 0, !0) / e.size || 0, s = \"auto\" === o ? u : u / o, c = f(n, \"origin\", \"auto\"), d = 0, l = 0; l < r; l++) {\n var p = \"auto\" === o ? x(t[l]) : 1 / o - u + s,\n v = \"center\" === c ? .5 - p / 2 : \"auto\" === c ? 0 : c;\n a.push({\n origin: v,\n size: p,\n spacing: u\n }), d += p;\n }\n\n if (d += u * (r - 1), \"auto\" === c && !e.options.loop && 1 !== o) {\n var m = 0;\n a.map(function (n) {\n var t = d - m;\n return m += n.size + u, t >= 1 || (n.origin = 1 - t - (d > 1 ? 0 : 1 - d)), n;\n });\n }\n\n e.options.trackConfig = a;\n }\n\n function E() {\n I();\n var n = e.size;\n e.options.disabled || n === u || (u = n, T());\n }\n\n function z() {\n E(), setTimeout(E, 500), setTimeout(E, 2e3);\n }\n\n function I() {\n var n = l(e.container);\n e.size = (e.options.vertical ? n.height : n.width) || 1;\n }\n\n function A() {\n e.slides = a(e.options.selector, e.container);\n }\n\n e.container = (v = a(t, p || document)).length ? v[0] : null, e.destroy = function () {\n m.purge(), e.emit(\"destroyed\"), h(!0);\n }, e.prev = function () {\n e.moveToIdx(e.track.details.abs - 1, !0);\n }, e.next = function () {\n e.moveToIdx(e.track.details.abs + 1, !0);\n }, e.update = T, k(e.options);\n };\n}\n\nvar y = function y(n, i, e) {\n try {\n return function (n, t) {\n var i,\n e = {};\n return i = {\n emit: function emit(n) {\n e[n] && e[n].forEach(function (n) {\n n(i);\n });\n var t = i.options[n];\n t && t(i);\n },\n moveToIdx: function moveToIdx(n, t, e) {\n var r = i.track.idxToDist(n, t);\n\n if (r) {\n var a = i.options.defaultAnimation;\n i.animator.start([{\n distance: r,\n duration: f(e || a, \"duration\", 500),\n easing: f(e || a, \"easing\", function (n) {\n return 1 + --n * n * n * n * n;\n })\n }]);\n }\n },\n on: function on(n, t, i) {\n void 0 === i && (i = !1), e[n] || (e[n] = []);\n var r = e[n].indexOf(t);\n r > -1 ? i && delete e[n][r] : i || e[n].push(t);\n },\n options: n\n }, function () {\n if (i.track = m(i), i.animator = v(i), t) for (var n in t) {\n var e = t[n];\n e && e(i);\n }\n i.track.init(i.options.initial || 0), i.emit(\"created\");\n }(), i;\n }(i, t([x(n, {\n drag: !0,\n mode: \"snap\",\n renderMode: \"precision\",\n rubberband: !0,\n selector: \".keen-slider__slide\"\n }), b, g, h], e || [], !0));\n } catch (n) {\n console.error(n);\n }\n};\n\nexport { y as default };","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = _typeof(value);\n\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar g; // This works in non-strict mode\n\ng = function () {\n return this;\n}();\n\ntry {\n // This works if eval is allowed (see CSP)\n g = g || new Function(\"return this\")();\n} catch (e) {\n // This works if the window reference is available\n if ((typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === \"object\") g = window;\n} // g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\n\nmodule.exports = g;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nvar baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n/** `Object#toString` result references. */\n\n\nvar symbolTag = '[object Symbol]';\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\n\nfunction isSymbol(value) {\n return _typeof(value) == 'symbol' || isObjectLike(value) && baseGetTag(value) == symbolTag;\n}\n\nmodule.exports = isSymbol;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/** Detect free variable `global` from Node.js. */\nvar freeGlobal = (typeof global === \"undefined\" ? \"undefined\" : _typeof(global)) == 'object' && global && global.Object === Object && global;\nmodule.exports = freeGlobal;","var _Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n/** `Object#toString` result references. */\n\n\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n/** Built-in value references. */\n\nvar symToStringTag = _Symbol ? _Symbol.toStringTag : undefined;\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\n\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n\n return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);\n}\n\nmodule.exports = baseGetTag;","var _Symbol = require('./_Symbol');\n/** Used for built-in method references. */\n\n\nvar objectProto = Object.prototype;\n/** Used to check objects for own properties. */\n\nvar hasOwnProperty = objectProto.hasOwnProperty;\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n\nvar nativeObjectToString = objectProto.toString;\n/** Built-in value references. */\n\nvar symToStringTag = _Symbol ? _Symbol.toStringTag : undefined;\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\n\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n\n return result;\n}\n\nmodule.exports = getRawTag;","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\n\nvar nativeObjectToString = objectProto.toString;\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\n\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && _typeof(value) == 'object';\n}\n\nmodule.exports = isObjectLike;","var root = require('./_root');\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\n\n\nvar now = function now() {\n return root.Date.now();\n};\n\nmodule.exports = now;","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n/** Used as references for various `Number` constants. */\n\n\nvar NAN = 0 / 0;\n/** Used to detect bad signed hexadecimal string values. */\n\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n/** Used to detect binary string values. */\n\nvar reIsBinary = /^0b[01]+$/i;\n/** Used to detect octal string values. */\n\nvar reIsOctal = /^0o[0-7]+$/i;\n/** Built-in method references without a dependency on `root`. */\n\nvar freeParseInt = parseInt;\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\n\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n\n if (isSymbol(value)) {\n return NAN;\n }\n\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? other + '' : other;\n }\n\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;\n}\n\nmodule.exports = toNumber;","var trimmedEndIndex = require('./_trimmedEndIndex');\n/** Used to match leading whitespace. */\n\n\nvar reTrimStart = /^\\s+/;\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\n\nfunction baseTrim(string) {\n return string ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '') : string;\n}\n\nmodule.exports = baseTrim;","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\n\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n\n return index;\n}\n\nmodule.exports = trimmedEndIndex;","function _typeof2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof2(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = global || self, global.urlParser = factory());\n})(this, function () {\n 'use strict';\n\n function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function _typeof(obj) {\n return typeof obj;\n };\n } else {\n _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n }\n\n var getQueryParams = function getQueryParams(qs) {\n if (typeof qs !== 'string') {\n return {};\n }\n\n qs = qs.split('+').join(' ');\n var params = {};\n var match = qs.match(/(?:[?](?:[^=]+)=(?:[^&#]*)(?:[&](?:[^=]+)=(?:[^&#]*))*(?:[#].*)?)|(?:[#].*)/);\n var split;\n\n if (match === null) {\n return {};\n }\n\n split = match[0].substr(1).split(/[&#=]/);\n\n for (var i = 0; i < split.length; i += 2) {\n params[decodeURIComponent(split[i])] = decodeURIComponent(split[i + 1] || '');\n }\n\n return params;\n };\n\n var combineParams = function combineParams(params, hasParams) {\n if (_typeof(params) !== 'object') {\n return '';\n }\n\n var combined = '';\n var i = 0;\n var keys = Object.keys(params);\n\n if (keys.length === 0) {\n return '';\n } //always have parameters in the same order\n\n\n keys.sort();\n\n if (!hasParams) {\n combined += '?' + keys[0] + '=' + params[keys[0]];\n i += 1;\n }\n\n for (; i < keys.length; i += 1) {\n combined += '&' + keys[i] + '=' + params[keys[i]];\n }\n\n return combined;\n }; //parses strings like 1h30m20s to seconds\n\n\n function getLetterTime(timeString) {\n var totalSeconds = 0;\n var timeValues = {\n 's': 1,\n 'm': 1 * 60,\n 'h': 1 * 60 * 60,\n 'd': 1 * 60 * 60 * 24,\n 'w': 1 * 60 * 60 * 24 * 7\n };\n var timePairs; //expand to \"1 h 30 m 20 s\" and split\n\n timeString = timeString.replace(/([smhdw])/g, ' $1 ').trim();\n timePairs = timeString.split(' ');\n\n for (var i = 0; i < timePairs.length; i += 2) {\n totalSeconds += parseInt(timePairs[i], 10) * timeValues[timePairs[i + 1] || 's'];\n }\n\n return totalSeconds;\n } //parses strings like 1:30:20 to seconds\n\n\n function getColonTime(timeString) {\n var totalSeconds = 0;\n var timeValues = [1, 1 * 60, 1 * 60 * 60, 1 * 60 * 60 * 24, 1 * 60 * 60 * 24 * 7];\n var timePairs = timeString.split(':');\n\n for (var i = 0; i < timePairs.length; i++) {\n totalSeconds += parseInt(timePairs[i], 10) * timeValues[timePairs.length - i - 1];\n }\n\n return totalSeconds;\n }\n\n var getTime = function getTime(timeString) {\n if (typeof timeString === 'undefined') {\n return 0;\n }\n\n if (timeString.match(/^(\\d+[smhdw]?)+$/)) {\n return getLetterTime(timeString);\n }\n\n if (timeString.match(/^(\\d+:?)+$/)) {\n return getColonTime(timeString);\n }\n\n return 0;\n };\n\n var util = {\n getQueryParams: getQueryParams,\n combineParams: combineParams,\n getTime: getTime\n };\n var getQueryParams$1 = util.getQueryParams;\n\n function UrlParser() {\n for (var _i = 0, _arr = ['parseProvider', 'parse', 'bind', 'create']; _i < _arr.length; _i++) {\n var key = _arr[_i];\n this[key] = this[key].bind(this);\n }\n\n this.plugins = {};\n }\n\n var urlParser = UrlParser;\n\n UrlParser.prototype.parseProvider = function (url) {\n var match = url.match(/(?:(?:https?:)?\\/\\/)?(?:[^.]+\\.)?(\\w+)\\./i);\n return match ? match[1] : undefined;\n };\n\n UrlParser.prototype.parse = function (url) {\n if (typeof url === 'undefined') {\n return undefined;\n }\n\n var provider = this.parseProvider(url);\n var result;\n var plugin = this.plugins[provider];\n\n if (!provider || !plugin || !plugin.parse) {\n return undefined;\n }\n\n result = plugin.parse.call(plugin, url, getQueryParams$1(url));\n\n if (result) {\n result = removeEmptyParameters(result);\n result.provider = plugin.provider;\n }\n\n return result;\n };\n\n UrlParser.prototype.bind = function (plugin) {\n this.plugins[plugin.provider] = plugin;\n\n if (plugin.alternatives) {\n for (var i = 0; i < plugin.alternatives.length; i += 1) {\n this.plugins[plugin.alternatives[i]] = plugin;\n }\n }\n };\n\n UrlParser.prototype.create = function (op) {\n if (_typeof(op) !== 'object' || _typeof(op.videoInfo) !== 'object') {\n return undefined;\n }\n\n var vi = op.videoInfo;\n var params = op.params;\n var plugin = this.plugins[vi.provider];\n params = params === 'internal' ? vi.params : params || {};\n\n if (plugin) {\n op.format = op.format || plugin.defaultFormat; // eslint-disable-next-line no-prototype-builtins\n\n if (plugin.formats.hasOwnProperty(op.format)) {\n return plugin.formats[op.format].apply(plugin, [vi, Object.assign({}, params)]);\n }\n }\n\n return undefined;\n };\n\n function removeEmptyParameters(result) {\n if (result.params && Object.keys(result.params).length === 0) {\n delete result.params;\n }\n\n return result;\n }\n\n var parser = new urlParser();\n var base = parser;\n\n function Allocine() {\n this.provider = 'allocine';\n this.alternatives = [];\n this.defaultFormat = 'embed';\n this.formats = {\n embed: this.createEmbedUrl\n };\n this.mediaTypes = {\n VIDEO: 'video'\n };\n }\n\n Allocine.prototype.parseUrl = function (url) {\n var match = url.match(/(?:\\/video\\/player_gen_cmedia=)([A-Za-z0-9]+)/i);\n return match ? match[1] : undefined;\n };\n\n Allocine.prototype.parse = function (url) {\n var result = {\n mediaType: this.mediaTypes.VIDEO,\n id: this.parseUrl(url)\n };\n return result.id ? result : undefined;\n };\n\n Allocine.prototype.createEmbedUrl = function (vi) {\n if (!vi.id || vi.mediaType !== this.mediaTypes.VIDEO) {\n return undefined;\n }\n\n return 'https://player.allocine.fr/' + vi.id + '.html';\n };\n\n base.bind(new Allocine());\n var combineParams$1 = util.combineParams;\n\n function CanalPlus() {\n this.provider = 'canalplus';\n this.defaultFormat = 'embed';\n this.formats = {\n embed: this.createEmbedUrl\n };\n this.mediaTypes = {\n VIDEO: 'video'\n };\n }\n\n CanalPlus.prototype.parseParameters = function (params) {\n delete params.vid;\n return params;\n };\n\n CanalPlus.prototype.parse = function (url, params) {\n var _this = this;\n\n var result = {\n mediaType: this.mediaTypes.VIDEO,\n id: params.vid\n };\n result.params = _this.parseParameters(params);\n\n if (!result.id) {\n return undefined;\n }\n\n return result;\n };\n\n CanalPlus.prototype.createEmbedUrl = function (vi, params) {\n if (!vi.id || vi.mediaType !== this.mediaTypes.VIDEO) {\n return undefined;\n }\n\n var url = 'http://player.canalplus.fr/embed/';\n params.vid = vi.id;\n url += combineParams$1(params);\n return url;\n };\n\n base.bind(new CanalPlus());\n var combineParams$2 = util.combineParams;\n\n function Coub() {\n this.provider = 'coub';\n this.defaultFormat = 'long';\n this.formats = {\n \"long\": this.createLongUrl,\n embed: this.createEmbedUrl\n };\n this.mediaTypes = {\n VIDEO: 'video'\n };\n }\n\n Coub.prototype.parseUrl = function (url) {\n var match = url.match(/(?:embed|view)\\/([a-zA-Z\\d]+)/i);\n return match ? match[1] : undefined;\n };\n\n Coub.prototype.parse = function (url, params) {\n var result = {\n mediaType: this.mediaTypes.VIDEO,\n params: params,\n id: this.parseUrl(url)\n };\n\n if (!result.id) {\n return undefined;\n }\n\n return result;\n };\n\n Coub.prototype.createUrl = function (baseUrl, vi, params) {\n if (!vi.id || vi.mediaType !== this.mediaTypes.VIDEO) {\n return undefined;\n }\n\n var url = baseUrl + vi.id;\n url += combineParams$2(params);\n return url;\n };\n\n Coub.prototype.createLongUrl = function (vi, params) {\n return this.createUrl('https://coub.com/view/', vi, params);\n };\n\n Coub.prototype.createEmbedUrl = function (vi, params) {\n return this.createUrl('//coub.com/embed/', vi, params);\n };\n\n base.bind(new Coub());\n var combineParams$3 = util.combineParams,\n getTime$1 = util.getTime;\n\n function Dailymotion() {\n this.provider = 'dailymotion';\n this.alternatives = ['dai'];\n this.defaultFormat = 'long';\n this.formats = {\n \"short\": this.createShortUrl,\n \"long\": this.createLongUrl,\n embed: this.createEmbedUrl,\n image: this.createImageUrl\n };\n this.mediaTypes = {\n VIDEO: 'video'\n };\n }\n\n Dailymotion.prototype.parseParameters = function (params) {\n return this.parseTime(params);\n };\n\n Dailymotion.prototype.parseTime = function (params) {\n if (params.start) {\n params.start = getTime$1(params.start);\n }\n\n return params;\n };\n\n Dailymotion.prototype.parseUrl = function (url) {\n var match = url.match(/(?:\\/video|ly)\\/([A-Za-z0-9]+)/i);\n return match ? match[1] : undefined;\n };\n\n Dailymotion.prototype.parse = function (url, params) {\n var _this = this;\n\n var result = {\n mediaType: this.mediaTypes.VIDEO,\n params: _this.parseParameters(params),\n id: _this.parseUrl(url)\n };\n return result.id ? result : undefined;\n };\n\n Dailymotion.prototype.createUrl = function (base, vi, params) {\n if (!vi.id || vi.mediaType !== this.mediaTypes.VIDEO) {\n return undefined;\n }\n\n return base + vi.id + combineParams$3(params);\n };\n\n Dailymotion.prototype.createShortUrl = function (vi, params) {\n return this.createUrl('https://dai.ly/', vi, params);\n };\n\n Dailymotion.prototype.createLongUrl = function (vi, params) {\n return this.createUrl('https://dailymotion.com/video/', vi, params);\n };\n\n Dailymotion.prototype.createEmbedUrl = function (vi, params) {\n return this.createUrl('https://www.dailymotion.com/embed/video/', vi, params);\n };\n\n Dailymotion.prototype.createImageUrl = function (vi, params) {\n delete params.start;\n return this.createUrl('https://www.dailymotion.com/thumbnail/video/', vi, params);\n };\n\n base.bind(new Dailymotion());\n var combineParams$4 = util.combineParams;\n\n function Loom() {\n this.provider = 'loom';\n this.defaultFormat = 'long';\n this.formats = {\n \"long\": this.createLongUrl,\n embed: this.createEmbedUrl\n };\n this.mediaTypes = {\n VIDEO: 'video'\n };\n }\n\n Loom.prototype.parseUrl = function (url) {\n var match = url.match(/(?:share|embed)\\/([a-zA-Z\\d]+)/i);\n return match ? match[1] : undefined;\n };\n\n Loom.prototype.parse = function (url, params) {\n var result = {\n mediaType: this.mediaTypes.VIDEO,\n params: params,\n id: this.parseUrl(url)\n };\n return result.id ? result : undefined;\n };\n\n Loom.prototype.createUrl = function (baseUrl, vi, params) {\n if (!vi.id || vi.mediaType !== this.mediaTypes.VIDEO) {\n return undefined;\n }\n\n var url = baseUrl + vi.id;\n url += combineParams$4(params);\n return url;\n };\n\n Loom.prototype.createLongUrl = function (vi, params) {\n return this.createUrl('https://loom.com/share/', vi, params);\n };\n\n Loom.prototype.createEmbedUrl = function (vi, params) {\n return this.createUrl('//loom.com/embed/', vi, params);\n };\n\n base.bind(new Loom());\n var combineParams$5 = util.combineParams,\n getTime$2 = util.getTime;\n\n function Twitch() {\n this.provider = 'twitch';\n this.defaultFormat = 'long';\n this.formats = {\n \"long\": this.createLongUrl,\n embed: this.createEmbedUrl\n };\n this.mediaTypes = {\n VIDEO: 'video',\n STREAM: 'stream',\n CLIP: 'clip'\n };\n }\n\n Twitch.prototype.seperateId = function (id) {\n return {\n pre: id[0],\n id: id.substr(1)\n };\n };\n\n Twitch.prototype.parseChannel = function (result, params) {\n var channel = params.channel || params.utm_content || result.channel;\n delete params.utm_content;\n delete params.channel;\n return channel;\n };\n\n Twitch.prototype.parseUrl = function (url, result, params) {\n var match;\n match = url.match(/(clips\\.)?twitch\\.tv\\/(?:(?:videos\\/(\\d+))|(\\w+(?:-[\\w\\d-]+)?)(?:\\/clip\\/(\\w+))?)/i);\n\n if (match && match[2]) {\n //video\n result.id = 'v' + match[2];\n } else if (params.video) {\n //video embed\n result.id = params.video;\n delete params.video;\n } else if (params.clip) {\n //clips embed\n result.id = params.clip;\n result.isClip = true;\n delete params.clip;\n } else if (match && match[1] && match[3]) {\n //clips.twitch.tv/id\n result.id = match[3];\n result.isClip = true;\n } else if (match && match[3] && match[4]) {\n //twitch.tv/channel/clip/id\n result.channel = match[3];\n result.id = match[4];\n result.isClip = true;\n } else if (match && match[3]) {\n result.channel = match[3];\n }\n\n return result;\n };\n\n Twitch.prototype.parseMediaType = function (result) {\n var mediaType;\n\n if (result.id) {\n if (result.isClip) {\n mediaType = this.mediaTypes.CLIP;\n delete result.isClip;\n } else {\n mediaType = this.mediaTypes.VIDEO;\n }\n } else if (result.channel) {\n mediaType = this.mediaTypes.STREAM;\n }\n\n return mediaType;\n };\n\n Twitch.prototype.parseParameters = function (params) {\n if (params.t) {\n params.start = getTime$2(params.t);\n delete params.t;\n }\n\n return params;\n };\n\n Twitch.prototype.parse = function (url, params) {\n var _this = this;\n\n var result = {};\n result = _this.parseUrl(url, result, params);\n result.channel = _this.parseChannel(result, params);\n result.mediaType = _this.parseMediaType(result);\n result.params = _this.parseParameters(params);\n return result.channel || result.id ? result : undefined;\n };\n\n Twitch.prototype.createLongUrl = function (vi, params) {\n var url = '';\n\n if (vi.mediaType === this.mediaTypes.STREAM && vi.channel) {\n url = 'https://twitch.tv/' + vi.channel;\n } else if (vi.mediaType === this.mediaTypes.VIDEO && vi.id) {\n var sep = this.seperateId(vi.id);\n url = 'https://twitch.tv/videos/' + sep.id;\n\n if (params.start) {\n params.t = params.start + 's';\n delete params.start;\n }\n } else if (vi.mediaType === this.mediaTypes.CLIP && vi.id) {\n if (vi.channel) {\n url = 'https://www.twitch.tv/' + vi.channel + '/clip/' + vi.id;\n } else {\n url = 'https://clips.twitch.tv/' + vi.id;\n }\n } else {\n return undefined;\n }\n\n url += combineParams$5(params);\n return url;\n };\n\n Twitch.prototype.createEmbedUrl = function (vi, params) {\n var url = 'https://player.twitch.tv/';\n\n if (vi.mediaType === this.mediaTypes.STREAM && vi.channel) {\n params.channel = vi.channel;\n } else if (vi.mediaType === this.mediaTypes.VIDEO && vi.id) {\n params.video = vi.id;\n\n if (params.start) {\n params.t = params.start + 's';\n delete params.start;\n }\n } else if (vi.mediaType === this.mediaTypes.CLIP && vi.id) {\n url = 'https://clips.twitch.tv/embed';\n params.clip = vi.id;\n } else {\n return undefined;\n }\n\n url += combineParams$5(params);\n return url;\n };\n\n base.bind(new Twitch());\n var combineParams$6 = util.combineParams,\n getTime$3 = util.getTime;\n\n function Vimeo() {\n this.provider = 'vimeo';\n this.alternatives = ['vimeopro'];\n this.defaultFormat = 'long';\n this.formats = {\n \"long\": this.createLongUrl,\n embed: this.createEmbedUrl\n };\n this.mediaTypes = {\n VIDEO: 'video'\n };\n }\n\n Vimeo.prototype.parseUrl = function (url) {\n var match = url.match(/(?:\\/showcase\\/\\d+)?(?:\\/(?:channels\\/[\\w]+|(?:(?:album\\/\\d+|groups\\/[\\w]+)\\/)?videos?))?\\/(\\d+)/i);\n return match ? match[1] : undefined;\n };\n\n Vimeo.prototype.parseHash = function (url) {\n var match = url.match(/\\/\\d+\\/(\\w+)$/i);\n return match ? match[1] : undefined;\n };\n\n Vimeo.prototype.parseParameters = function (params) {\n if (params.t) {\n params.start = getTime$3(params.t);\n delete params.t;\n }\n\n if (params.h) {\n params.hash = params.h;\n delete params.h;\n }\n\n return params;\n };\n\n Vimeo.prototype.parse = function (url, params) {\n var result = {\n mediaType: this.mediaTypes.VIDEO,\n params: this.parseParameters(params),\n id: this.parseUrl(url)\n };\n var hash = this.parseHash(url, params);\n\n if (hash) {\n result.params.hash = hash;\n }\n\n return result.id ? result : undefined;\n };\n\n Vimeo.prototype.createUrl = function (baseUrl, vi, params, type) {\n if (!vi.id || vi.mediaType !== this.mediaTypes.VIDEO) {\n return undefined;\n }\n\n var url = baseUrl + vi.id;\n var startTime = params.start;\n delete params.start;\n\n if (params.hash) {\n if (type === 'embed') {\n params.h = params.hash;\n } else if (type === 'long') {\n url += '/' + params.hash;\n }\n\n delete params.hash;\n }\n\n url += combineParams$6(params);\n\n if (startTime) {\n url += '#t=' + startTime;\n }\n\n return url;\n };\n\n Vimeo.prototype.createLongUrl = function (vi, params) {\n return this.createUrl('https://vimeo.com/', vi, params, 'long');\n };\n\n Vimeo.prototype.createEmbedUrl = function (vi, params) {\n return this.createUrl('//player.vimeo.com/video/', vi, params, 'embed');\n };\n\n base.bind(new Vimeo());\n var combineParams$7 = util.combineParams,\n getTime$4 = util.getTime;\n\n function Wistia() {\n this.provider = 'wistia';\n this.alternatives = [];\n this.defaultFormat = 'long';\n this.formats = {\n \"long\": this.createLongUrl,\n embed: this.createEmbedUrl,\n embedjsonp: this.createEmbedJsonpUrl\n };\n this.mediaTypes = {\n VIDEO: 'video',\n EMBEDVIDEO: 'embedvideo'\n };\n }\n\n Wistia.prototype.parseUrl = function (url) {\n var match = url.match(/(?:(?:medias|iframe)\\/|wvideo=)([\\w-]+)/);\n return match ? match[1] : undefined;\n };\n\n Wistia.prototype.parseChannel = function (url) {\n var match = url.match(/(?:(?:https?:)?\\/\\/)?([^.]*)\\.wistia\\./);\n var channel = match ? match[1] : undefined;\n\n if (channel === 'fast' || channel === 'content') {\n return undefined;\n }\n\n return channel;\n };\n\n Wistia.prototype.parseParameters = function (params, result) {\n if (params.wtime) {\n params.start = getTime$4(params.wtime);\n delete params.wtime;\n }\n\n if (params.wvideo === result.id) {\n delete params.wvideo;\n }\n\n return params;\n };\n\n Wistia.prototype.parseMediaType = function (result) {\n if (result.id && result.channel) {\n return this.mediaTypes.VIDEO;\n } else if (result.id) {\n delete result.channel;\n return this.mediaTypes.EMBEDVIDEO;\n } else {\n return undefined;\n }\n };\n\n Wistia.prototype.parse = function (url, params) {\n var result = {\n id: this.parseUrl(url),\n channel: this.parseChannel(url)\n };\n result.params = this.parseParameters(params, result);\n result.mediaType = this.parseMediaType(result);\n\n if (!result.id) {\n return undefined;\n }\n\n return result;\n };\n\n Wistia.prototype.createUrl = function (vi, params, url) {\n if (params.start) {\n params.wtime = params.start;\n delete params.start;\n }\n\n url += combineParams$7(params);\n return url;\n };\n\n Wistia.prototype.createLongUrl = function (vi, params) {\n if (!vi.id || vi.mediaType !== this.mediaTypes.VIDEO) {\n return undefined;\n }\n\n var url = 'https://' + vi.channel + '.wistia.com/medias/' + vi.id;\n return this.createUrl(vi, params, url);\n };\n\n Wistia.prototype.createEmbedUrl = function (vi, params) {\n if (!vi.id || !(vi.mediaType === this.mediaTypes.VIDEO || vi.mediaType === this.mediaTypes.EMBEDVIDEO)) {\n return undefined;\n }\n\n var url = 'https://fast.wistia.com/embed/iframe/' + vi.id;\n return this.createUrl(vi, params, url);\n };\n\n Wistia.prototype.createEmbedJsonpUrl = function (vi) {\n if (!vi.id || !(vi.mediaType === this.mediaTypes.VIDEO || vi.mediaType === this.mediaTypes.EMBEDVIDEO)) {\n return undefined;\n }\n\n return 'https://fast.wistia.com/embed/medias/' + vi.id + '.jsonp';\n };\n\n base.bind(new Wistia());\n var combineParams$8 = util.combineParams;\n\n function Youku() {\n this.provider = 'youku';\n this.defaultFormat = 'long';\n this.formats = {\n embed: this.createEmbedUrl,\n \"long\": this.createLongUrl,\n flash: this.createFlashUrl,\n \"static\": this.createStaticUrl\n };\n this.mediaTypes = {\n VIDEO: 'video'\n };\n }\n\n Youku.prototype.parseUrl = function (url) {\n var match = url.match(/(?:(?:embed|sid)\\/|v_show\\/id_|VideoIDS=)([a-zA-Z0-9]+)/);\n return match ? match[1] : undefined;\n };\n\n Youku.prototype.parseParameters = function (params) {\n if (params.VideoIDS) {\n delete params.VideoIDS;\n }\n\n return params;\n };\n\n Youku.prototype.parse = function (url, params) {\n var _this = this;\n\n var result = {\n mediaType: this.mediaTypes.VIDEO,\n id: _this.parseUrl(url),\n params: _this.parseParameters(params)\n };\n\n if (!result.id) {\n return undefined;\n }\n\n return result;\n };\n\n Youku.prototype.createUrl = function (baseUrl, vi, params) {\n if (!vi.id || vi.mediaType !== this.mediaTypes.VIDEO) {\n return undefined;\n }\n\n var url = baseUrl + vi.id;\n url += combineParams$8(params);\n return url;\n };\n\n Youku.prototype.createEmbedUrl = function (vi, params) {\n return this.createUrl('http://player.youku.com/embed/', vi, params);\n };\n\n Youku.prototype.createLongUrl = function (vi, params) {\n return this.createUrl('http://v.youku.com/v_show/id_', vi, params);\n };\n\n Youku.prototype.createStaticUrl = function (vi, params) {\n return this.createUrl('http://static.youku.com/v1.0.0638/v/swf/loader.swf?VideoIDS=', vi, params);\n };\n\n Youku.prototype.createFlashUrl = function (vi, params) {\n if (!vi.id || vi.mediaType !== this.mediaTypes.VIDEO) {\n return undefined;\n }\n\n var url = 'http://player.youku.com/player.php/sid/' + vi.id + '/v.swf';\n url += combineParams$8(params);\n return url;\n };\n\n base.bind(new Youku());\n var combineParams$9 = util.combineParams,\n getTime$5 = util.getTime;\n\n function YouTube() {\n this.provider = 'youtube';\n this.alternatives = ['youtu', 'ytimg'];\n this.defaultFormat = 'long';\n this.formats = {\n \"short\": this.createShortUrl,\n \"long\": this.createLongUrl,\n embed: this.createEmbedUrl,\n shortImage: this.createShortImageUrl,\n longImage: this.createLongImageUrl\n };\n this.imageQualities = {\n '0': '0',\n '1': '1',\n '2': '2',\n '3': '3',\n DEFAULT: 'default',\n HQDEFAULT: 'hqdefault',\n SDDEFAULT: 'sddefault',\n MQDEFAULT: 'mqdefault',\n MAXRESDEFAULT: 'maxresdefault'\n };\n this.defaultImageQuality = this.imageQualities.HQDEFAULT;\n this.mediaTypes = {\n VIDEO: 'video',\n PLAYLIST: 'playlist',\n SHARE: 'share',\n CHANNEL: 'channel'\n };\n }\n\n YouTube.prototype.parseVideoUrl = function (url) {\n var match = url.match(/(?:(?:v|vi|be|videos|embed)\\/(?!videoseries)|(?:v|ci)=)([\\w-]{11})/i);\n return match ? match[1] : undefined;\n };\n\n YouTube.prototype.parseChannelUrl = function (url) {\n // Match an opaque channel ID\n var match = url.match(/\\/channel\\/([\\w-]+)/);\n\n if (match) {\n return {\n id: match[1],\n mediaType: this.mediaTypes.CHANNEL\n };\n } // Match a vanity channel name or a user name. User urls are deprecated and\n // currently redirect to the channel of that same name.\n\n\n match = url.match(/\\/(?:c|user)\\/([\\w-]+)/);\n\n if (match) {\n return {\n name: match[1],\n mediaType: this.mediaTypes.CHANNEL\n };\n }\n };\n\n YouTube.prototype.parseParameters = function (params, result) {\n if (params.start || params.t) {\n params.start = getTime$5(params.start || params.t);\n delete params.t;\n }\n\n if (params.v === result.id) {\n delete params.v;\n }\n\n if (params.list === result.id) {\n delete params.list;\n }\n\n return params;\n };\n\n YouTube.prototype.parseMediaType = function (result) {\n if (result.params.list) {\n result.list = result.params.list;\n delete result.params.list;\n }\n\n if (result.id && !result.params.ci) {\n result.mediaType = this.mediaTypes.VIDEO;\n } else if (result.list) {\n delete result.id;\n result.mediaType = this.mediaTypes.PLAYLIST;\n } else if (result.params.ci) {\n delete result.params.ci;\n result.mediaType = this.mediaTypes.SHARE;\n } else {\n return undefined;\n }\n\n return result;\n };\n\n YouTube.prototype.parse = function (url, params) {\n var channelResult = this.parseChannelUrl(url);\n\n if (channelResult) {\n return channelResult;\n } else {\n var result = {\n params: params,\n id: this.parseVideoUrl(url)\n };\n result.params = this.parseParameters(params, result);\n result = this.parseMediaType(result);\n return result;\n }\n };\n\n YouTube.prototype.createShortUrl = function (vi, params) {\n if (!vi.id || vi.mediaType !== this.mediaTypes.VIDEO) {\n return undefined;\n }\n\n var url = 'https://youtu.be/' + vi.id;\n\n if (params.start) {\n url += '#t=' + params.start;\n }\n\n return url;\n };\n\n YouTube.prototype.createLongUrl = function (vi, params) {\n var url = '';\n var startTime = params.start;\n delete params.start;\n\n if (vi.mediaType === this.mediaTypes.CHANNEL) {\n if (vi.id) {\n url += 'https://www.youtube.com/channel/' + vi.id;\n } else if (vi.name) {\n url += 'https://www.youtube.com/c/' + vi.name;\n } else {\n return undefined;\n }\n } else if (vi.mediaType === this.mediaTypes.PLAYLIST && vi.list) {\n params.feature = 'share';\n url += 'https://www.youtube.com/playlist';\n } else if (vi.mediaType === this.mediaTypes.VIDEO && vi.id) {\n params.v = vi.id;\n url += 'https://www.youtube.com/watch';\n } else if (vi.mediaType === this.mediaTypes.SHARE && vi.id) {\n params.ci = vi.id;\n url += 'https://www.youtube.com/shared';\n } else {\n return undefined;\n }\n\n if (vi.list) {\n params.list = vi.list;\n }\n\n url += combineParams$9(params);\n\n if (vi.mediaType !== this.mediaTypes.PLAYLIST && startTime) {\n url += '#t=' + startTime;\n }\n\n return url;\n };\n\n YouTube.prototype.createEmbedUrl = function (vi, params) {\n var url = 'https://www.youtube.com/embed';\n\n if (vi.mediaType === this.mediaTypes.PLAYLIST && vi.list) {\n params.listType = 'playlist';\n } else if (vi.mediaType === this.mediaTypes.VIDEO && vi.id) {\n url += '/' + vi.id; //loop hack\n\n if (params.loop === '1') {\n params.playlist = vi.id;\n }\n } else {\n return undefined;\n }\n\n if (vi.list) {\n params.list = vi.list;\n }\n\n url += combineParams$9(params);\n return url;\n };\n\n YouTube.prototype.createImageUrl = function (baseUrl, vi, params) {\n if (!vi.id || vi.mediaType !== this.mediaTypes.VIDEO) {\n return undefined;\n }\n\n var url = baseUrl + vi.id + '/';\n var quality = params.imageQuality || this.defaultImageQuality;\n return url + quality + '.jpg';\n };\n\n YouTube.prototype.createShortImageUrl = function (vi, params) {\n return this.createImageUrl('https://i.ytimg.com/vi/', vi, params);\n };\n\n YouTube.prototype.createLongImageUrl = function (vi, params) {\n return this.createImageUrl('https://img.youtube.com/vi/', vi, params);\n };\n\n base.bind(new YouTube());\n var combineParams$a = util.combineParams,\n getTime$6 = util.getTime;\n\n function SoundCloud() {\n this.provider = 'soundcloud';\n this.defaultFormat = 'long';\n this.formats = {\n \"long\": this.createLongUrl,\n embed: this.createEmbedUrl\n };\n this.mediaTypes = {\n TRACK: 'track',\n PLAYLIST: 'playlist',\n APITRACK: 'apitrack',\n APIPLAYLIST: 'apiplaylist'\n };\n }\n\n SoundCloud.prototype.parseUrl = function (url, result) {\n var match = url.match(/(?:m\\.)?soundcloud\\.com\\/(?:([\\w-]+)\\/(sets\\/)?)([\\w-]+)/i);\n\n if (!match) {\n return result;\n }\n\n result.channel = match[1];\n\n if (match[1] === 'playlists' || match[2]) {\n //playlist\n result.list = match[3];\n } else {\n //track\n result.id = match[3];\n }\n\n return result;\n };\n\n SoundCloud.prototype.parseParameters = function (params) {\n if (params.t) {\n params.start = getTime$6(params.t);\n delete params.t;\n }\n\n return params;\n };\n\n SoundCloud.prototype.parseMediaType = function (result) {\n if (result.id) {\n if (result.channel === 'tracks') {\n delete result.channel;\n delete result.params.url;\n result.mediaType = this.mediaTypes.APITRACK;\n } else {\n result.mediaType = this.mediaTypes.TRACK;\n }\n }\n\n if (result.list) {\n if (result.channel === 'playlists') {\n delete result.channel;\n delete result.params.url;\n result.mediaType = this.mediaTypes.APIPLAYLIST;\n } else {\n result.mediaType = this.mediaTypes.PLAYLIST;\n }\n }\n\n return result;\n };\n\n SoundCloud.prototype.parse = function (url, params) {\n var result = {};\n result = this.parseUrl(url, result);\n result.params = this.parseParameters(params);\n result = this.parseMediaType(result);\n\n if (!result.id && !result.list) {\n return undefined;\n }\n\n return result;\n };\n\n SoundCloud.prototype.createLongUrl = function (vi, params) {\n var url = '';\n var startTime = params.start;\n delete params.start;\n\n if (vi.mediaType === this.mediaTypes.TRACK && vi.id && vi.channel) {\n url = 'https://soundcloud.com/' + vi.channel + '/' + vi.id;\n } else if (vi.mediaType === this.mediaTypes.PLAYLIST && vi.list && vi.channel) {\n url = 'https://soundcloud.com/' + vi.channel + '/sets/' + vi.list;\n } else if (vi.mediaType === this.mediaTypes.APITRACK && vi.id) {\n url = 'https://api.soundcloud.com/tracks/' + vi.id;\n } else if (vi.mediaType === this.mediaTypes.APIPLAYLIST && vi.list) {\n url = 'https://api.soundcloud.com/playlists/' + vi.list;\n } else {\n return undefined;\n }\n\n url += combineParams$a(params);\n\n if (startTime) {\n url += '#t=' + startTime;\n }\n\n return url;\n };\n\n SoundCloud.prototype.createEmbedUrl = function (vi, params) {\n var url = 'https://w.soundcloud.com/player/';\n delete params.start;\n\n if (vi.mediaType === this.mediaTypes.APITRACK && vi.id) {\n params.url = 'https%3A//api.soundcloud.com/tracks/' + vi.id;\n } else if (vi.mediaType === this.mediaTypes.APIPLAYLIST && vi.list) {\n params.url = 'https%3A//api.soundcloud.com/playlists/' + vi.list;\n } else {\n return undefined;\n }\n\n url += combineParams$a(params);\n return url;\n };\n\n base.bind(new SoundCloud());\n var combineParams$b = util.combineParams;\n\n function TeacherTube() {\n this.provider = 'teachertube';\n this.alternatives = [];\n this.defaultFormat = 'long';\n this.formats = {\n \"long\": this.createLongUrl,\n embed: this.createEmbedUrl\n };\n this.mediaTypes = {\n VIDEO: 'video',\n AUDIO: 'audio',\n DOCUMENT: 'document',\n CHANNEL: 'channel',\n COLLECTION: 'collection',\n GROUP: 'group'\n };\n }\n\n TeacherTube.prototype.parse = function (url, params) {\n var result = {};\n result.list = this.parsePlaylist(params);\n result.params = params;\n var match = url.match(/\\/(audio|video|document|user\\/channel|collection|group)\\/(?:[\\w-]+-)?(\\w+)/);\n\n if (!match) {\n return undefined;\n }\n\n result.mediaType = this.parseMediaType(match[1]);\n result.id = match[2];\n return result;\n };\n\n TeacherTube.prototype.parsePlaylist = function (params) {\n if (params['playlist-id']) {\n var list = params['playlist-id'];\n delete params['playlist-id'];\n return list;\n }\n\n return undefined;\n };\n\n TeacherTube.prototype.parseMediaType = function (mediaTypeMatch) {\n switch (mediaTypeMatch) {\n case 'audio':\n return this.mediaTypes.AUDIO;\n\n case 'video':\n return this.mediaTypes.VIDEO;\n\n case 'document':\n return this.mediaTypes.DOCUMENT;\n\n case 'user/channel':\n return this.mediaTypes.CHANNEL;\n\n case 'collection':\n return this.mediaTypes.COLLECTION;\n\n case 'group':\n return this.mediaTypes.GROUP;\n }\n };\n\n TeacherTube.prototype.createLongUrl = function (vi, params) {\n if (!vi.id) {\n return undefined;\n }\n\n var url = 'https://www.teachertube.com/';\n\n if (vi.list) {\n params['playlist-id'] = vi.list;\n }\n\n if (vi.mediaType === this.mediaTypes.CHANNEL) {\n url += 'user/channel/';\n } else {\n url += vi.mediaType + '/';\n }\n\n url += vi.id;\n url += combineParams$b(params);\n return url;\n };\n\n TeacherTube.prototype.createEmbedUrl = function (vi, params) {\n if (!vi.id) {\n return undefined;\n }\n\n var url = 'https://www.teachertube.com/embed/';\n\n if (vi.mediaType === this.mediaTypes.VIDEO || vi.mediaType === this.mediaTypes.AUDIO) {\n url += vi.mediaType + '/' + vi.id;\n } else {\n return undefined;\n }\n\n url += combineParams$b(params);\n return url;\n };\n\n base.bind(new TeacherTube());\n var combineParams$c = util.combineParams;\n\n function TikTok() {\n this.provider = 'tiktok';\n this.defaultFormat = 'long';\n this.formats = {\n \"long\": this.createLongUrl\n };\n this.mediaTypes = {\n VIDEO: 'video'\n };\n }\n\n TikTok.prototype.parse = function (url, params) {\n var result = {\n params: params,\n mediaType: this.mediaTypes.VIDEO\n };\n var match = url.match(/@([^/]+)\\/video\\/(\\d{19})/);\n\n if (!match) {\n return;\n }\n\n result.channel = match[1];\n result.id = match[2];\n return result;\n };\n\n TikTok.prototype.createLongUrl = function (vi, params) {\n var url = '';\n\n if (vi.mediaType === this.mediaTypes.VIDEO && vi.id && vi.channel) {\n url += \"https://www.tiktok.com/@\".concat(vi.channel, \"/video/\").concat(vi.id);\n } else {\n return undefined;\n }\n\n url += combineParams$c(params);\n return url;\n };\n\n base.bind(new TikTok());\n var combineParams$d = util.combineParams;\n\n function Ted() {\n this.provider = 'ted';\n this.formats = {\n \"long\": this.createLongUrl,\n embed: this.createEmbedUrl\n };\n this.mediaTypes = {\n VIDEO: 'video',\n PLAYLIST: 'playlist'\n };\n }\n\n Ted.prototype.parseUrl = function (url, result) {\n var match = url.match(/\\/(talks|playlists\\/(\\d+))\\/([\\w-]+)/i);\n var channel = match ? match[1] : undefined;\n\n if (!channel) {\n return result;\n }\n\n result.channel = channel.split('/')[0];\n result.id = match[3];\n\n if (result.channel === 'playlists') {\n result.list = match[2];\n }\n\n return result;\n };\n\n Ted.prototype.parseMediaType = function (result) {\n if (result.id && result.channel === 'playlists') {\n delete result.channel;\n result.mediaType = this.mediaTypes.PLAYLIST;\n }\n\n if (result.id && result.channel === 'talks') {\n delete result.channel;\n result.mediaType = this.mediaTypes.VIDEO;\n }\n\n return result;\n };\n\n Ted.prototype.parse = function (url, params) {\n var result = {\n params: params\n };\n result = this.parseUrl(url, result);\n result = this.parseMediaType(result);\n\n if (!result.id) {\n return undefined;\n }\n\n return result;\n };\n\n Ted.prototype.createLongUrl = function (vi, params) {\n var url = '';\n\n if (vi.mediaType === this.mediaTypes.VIDEO && vi.id) {\n url += 'https://ted.com/talks/' + vi.id;\n } else if (vi.mediaType === this.mediaTypes.PLAYLIST && vi.id) {\n url += 'https://ted.com/playlists/' + vi.list + '/' + vi.id;\n } else {\n return undefined;\n }\n\n url += combineParams$d(params);\n return url;\n };\n\n Ted.prototype.createEmbedUrl = function (vi, params) {\n var url = 'https://embed.ted.com/';\n\n if (vi.mediaType === this.mediaTypes.PLAYLIST && vi.id) {\n url += 'playlists/' + vi.list + '/' + vi.id;\n } else if (vi.mediaType === this.mediaTypes.VIDEO && vi.id) {\n url += 'talks/' + vi.id;\n } else {\n return undefined;\n }\n\n url += combineParams$d(params);\n return url;\n };\n\n base.bind(new Ted());\n var combineParams$e = util.combineParams;\n\n function Facebook() {\n this.provider = 'facebook';\n this.alternatives = [];\n this.defaultFormat = 'long';\n this.formats = {\n \"long\": this.createLongUrl,\n watch: this.createWatchUrl\n };\n this.mediaTypes = {\n VIDEO: 'video'\n };\n }\n\n Facebook.prototype.parse = function (url, params) {\n var result = {\n params: params,\n mediaType: this.mediaTypes.VIDEO\n };\n var match = url.match(/(?:\\/(\\d+))?\\/videos(?:\\/.*?)?\\/(\\d+)/i);\n\n if (match) {\n if (match[1]) {\n result.pageId = match[1];\n }\n\n result.id = match[2];\n }\n\n if (params.v && !result.id) {\n result.id = params.v;\n delete params.v;\n result.params = params;\n }\n\n if (!result.id) {\n return undefined;\n }\n\n return result;\n };\n\n Facebook.prototype.createWatchUrl = function (vi, params) {\n var url = 'https://facebook.com/watch/';\n\n if (vi.mediaType !== this.mediaTypes.VIDEO || !vi.id) {\n return undefined;\n }\n\n params = {\n v: vi.id\n };\n url += combineParams$e(params);\n return url;\n };\n\n Facebook.prototype.createLongUrl = function (vi, params) {\n var url = 'https://facebook.com/';\n\n if (vi.pageId) {\n url += vi.pageId;\n } else {\n return undefined;\n }\n\n if (vi.mediaType === this.mediaTypes.VIDEO && vi.id) {\n url += '/videos/' + vi.id;\n } else {\n return undefined;\n }\n\n url += combineParams$e(params);\n return url;\n };\n\n base.bind(new Facebook());\n var lib = base;\n return lib;\n});","var _require = require('../util'),\n combineParams = _require.combineParams,\n getTime = _require.getTime;\n\nfunction YouTube() {\n this.provider = 'youtube';\n this.alternatives = ['youtu', 'ytimg'];\n this.defaultFormat = 'long';\n this.formats = {\n \"short\": this.createShortUrl,\n \"long\": this.createLongUrl,\n embed: this.createEmbedUrl,\n shortImage: this.createShortImageUrl,\n longImage: this.createLongImageUrl\n };\n this.imageQualities = {\n '0': '0',\n '1': '1',\n '2': '2',\n '3': '3',\n DEFAULT: 'default',\n HQDEFAULT: 'hqdefault',\n SDDEFAULT: 'sddefault',\n MQDEFAULT: 'mqdefault',\n MAXRESDEFAULT: 'maxresdefault'\n };\n this.defaultImageQuality = this.imageQualities.HQDEFAULT;\n this.mediaTypes = {\n VIDEO: 'video',\n PLAYLIST: 'playlist',\n SHARE: 'share',\n CHANNEL: 'channel'\n };\n}\n\nmodule.exports = YouTube;\n\nYouTube.prototype.parseVideoUrl = function (url) {\n var match = url.match(/(?:(?:v|vi|be|videos|embed)\\/(?!videoseries)|(?:v|ci)=)([\\w-]{11})/i);\n return match ? match[1] : undefined;\n};\n\nYouTube.prototype.parseChannelUrl = function (url) {\n // Match an opaque channel ID\n var match = url.match(/\\/channel\\/([\\w-]+)/);\n\n if (match) {\n return {\n id: match[1],\n mediaType: this.mediaTypes.CHANNEL\n };\n } // Match a vanity channel name or a user name. User urls are deprecated and\n // currently redirect to the channel of that same name.\n\n\n match = url.match(/\\/(?:c|user)\\/([\\w-]+)/);\n\n if (match) {\n return {\n name: match[1],\n mediaType: this.mediaTypes.CHANNEL\n };\n }\n};\n\nYouTube.prototype.parseParameters = function (params, result) {\n if (params.start || params.t) {\n params.start = getTime(params.start || params.t);\n delete params.t;\n }\n\n if (params.v === result.id) {\n delete params.v;\n }\n\n if (params.list === result.id) {\n delete params.list;\n }\n\n return params;\n};\n\nYouTube.prototype.parseMediaType = function (result) {\n if (result.params.list) {\n result.list = result.params.list;\n delete result.params.list;\n }\n\n if (result.id && !result.params.ci) {\n result.mediaType = this.mediaTypes.VIDEO;\n } else if (result.list) {\n delete result.id;\n result.mediaType = this.mediaTypes.PLAYLIST;\n } else if (result.params.ci) {\n delete result.params.ci;\n result.mediaType = this.mediaTypes.SHARE;\n } else {\n return undefined;\n }\n\n return result;\n};\n\nYouTube.prototype.parse = function (url, params) {\n var channelResult = this.parseChannelUrl(url);\n\n if (channelResult) {\n return channelResult;\n } else {\n var result = {\n params: params,\n id: this.parseVideoUrl(url)\n };\n result.params = this.parseParameters(params, result);\n result = this.parseMediaType(result);\n return result;\n }\n};\n\nYouTube.prototype.createShortUrl = function (vi, params) {\n if (!vi.id || vi.mediaType !== this.mediaTypes.VIDEO) {\n return undefined;\n }\n\n var url = 'https://youtu.be/' + vi.id;\n\n if (params.start) {\n url += '#t=' + params.start;\n }\n\n return url;\n};\n\nYouTube.prototype.createLongUrl = function (vi, params) {\n var url = '';\n var startTime = params.start;\n delete params.start;\n\n if (vi.mediaType === this.mediaTypes.CHANNEL) {\n if (vi.id) {\n url += 'https://www.youtube.com/channel/' + vi.id;\n } else if (vi.name) {\n url += 'https://www.youtube.com/c/' + vi.name;\n } else {\n return undefined;\n }\n } else if (vi.mediaType === this.mediaTypes.PLAYLIST && vi.list) {\n params.feature = 'share';\n url += 'https://www.youtube.com/playlist';\n } else if (vi.mediaType === this.mediaTypes.VIDEO && vi.id) {\n params.v = vi.id;\n url += 'https://www.youtube.com/watch';\n } else if (vi.mediaType === this.mediaTypes.SHARE && vi.id) {\n params.ci = vi.id;\n url += 'https://www.youtube.com/shared';\n } else {\n return undefined;\n }\n\n if (vi.list) {\n params.list = vi.list;\n }\n\n url += combineParams(params);\n\n if (vi.mediaType !== this.mediaTypes.PLAYLIST && startTime) {\n url += '#t=' + startTime;\n }\n\n return url;\n};\n\nYouTube.prototype.createEmbedUrl = function (vi, params) {\n var url = 'https://www.youtube.com/embed';\n\n if (vi.mediaType === this.mediaTypes.PLAYLIST && vi.list) {\n params.listType = 'playlist';\n } else if (vi.mediaType === this.mediaTypes.VIDEO && vi.id) {\n url += '/' + vi.id; //loop hack\n\n if (params.loop === '1') {\n params.playlist = vi.id;\n }\n } else {\n return undefined;\n }\n\n if (vi.list) {\n params.list = vi.list;\n }\n\n url += combineParams(params);\n return url;\n};\n\nYouTube.prototype.createImageUrl = function (baseUrl, vi, params) {\n if (!vi.id || vi.mediaType !== this.mediaTypes.VIDEO) {\n return undefined;\n }\n\n var url = baseUrl + vi.id + '/';\n var quality = params.imageQuality || this.defaultImageQuality;\n return url + quality + '.jpg';\n};\n\nYouTube.prototype.createShortImageUrl = function (vi, params) {\n return this.createImageUrl('https://i.ytimg.com/vi/', vi, params);\n};\n\nYouTube.prototype.createLongImageUrl = function (vi, params) {\n return this.createImageUrl('https://img.youtube.com/vi/', vi, params);\n};\n\nrequire('../base').bind(new YouTube());","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nexports.getQueryParams = function getQueryParams(qs) {\n if (typeof qs !== 'string') {\n return {};\n }\n\n qs = qs.split('+').join(' ');\n var params = {};\n var match = qs.match(/(?:[?](?:[^=]+)=(?:[^&#]*)(?:[&](?:[^=]+)=(?:[^&#]*))*(?:[#].*)?)|(?:[#].*)/);\n var split;\n\n if (match === null) {\n return {};\n }\n\n split = match[0].substr(1).split(/[&#=]/);\n\n for (var i = 0; i < split.length; i += 2) {\n params[decodeURIComponent(split[i])] = decodeURIComponent(split[i + 1] || '');\n }\n\n return params;\n};\n\nexports.combineParams = function combineParams(params, hasParams) {\n if (_typeof(params) !== 'object') {\n return '';\n }\n\n var combined = '';\n var i = 0;\n var keys = Object.keys(params);\n\n if (keys.length === 0) {\n return '';\n } //always have parameters in the same order\n\n\n keys.sort();\n\n if (!hasParams) {\n combined += '?' + keys[0] + '=' + params[keys[0]];\n i += 1;\n }\n\n for (; i < keys.length; i += 1) {\n combined += '&' + keys[i] + '=' + params[keys[i]];\n }\n\n return combined;\n}; //parses strings like 1h30m20s to seconds\n\n\nfunction getLetterTime(timeString) {\n var totalSeconds = 0;\n var timeValues = {\n 's': 1,\n 'm': 1 * 60,\n 'h': 1 * 60 * 60,\n 'd': 1 * 60 * 60 * 24,\n 'w': 1 * 60 * 60 * 24 * 7\n };\n var timePairs; //expand to \"1 h 30 m 20 s\" and split\n\n timeString = timeString.replace(/([smhdw])/g, ' $1 ').trim();\n timePairs = timeString.split(' ');\n\n for (var i = 0; i < timePairs.length; i += 2) {\n totalSeconds += parseInt(timePairs[i], 10) * timeValues[timePairs[i + 1] || 's'];\n }\n\n return totalSeconds;\n} //parses strings like 1:30:20 to seconds\n\n\nfunction getColonTime(timeString) {\n var totalSeconds = 0;\n var timeValues = [1, 1 * 60, 1 * 60 * 60, 1 * 60 * 60 * 24, 1 * 60 * 60 * 24 * 7];\n var timePairs = timeString.split(':');\n\n for (var i = 0; i < timePairs.length; i++) {\n totalSeconds += parseInt(timePairs[i], 10) * timeValues[timePairs.length - i - 1];\n }\n\n return totalSeconds;\n}\n\nexports.getTime = function getTime(timeString) {\n if (typeof timeString === 'undefined') {\n return 0;\n }\n\n if (timeString.match(/^(\\d+[smhdw]?)+$/)) {\n return getLetterTime(timeString);\n }\n\n if (timeString.match(/^(\\d+:?)+$/)) {\n return getColonTime(timeString);\n }\n\n return 0;\n};","import YouTube from 'js-video-url-parser/lib/provider/youtube';\n\nconst YouTubeExtend = function () {\n YouTube.call(this);\n};\nYouTubeExtend.prototype = Object.create(YouTube.prototype);\nYouTubeExtend.prototype.parseVideoUrl = function (url) {\n const regex =\n /(?:(?:v|vi|be|videos|embed|shorts)\\/(?!videoseries)|(?:v|ci)=)([\\w-]{11})/i;\n const match = url.match(regex);\n return match ? match[1] : undefined;\n};\nYouTubeExtend.prototype.constructor = YouTubeExtend;\n\nexport default YouTubeExtend;\n","import videoUrlParser from 'js-video-url-parser';\nimport YouTubeExtend from '../../javascripts/js-video-url-parser/provider/youtube';\nimport { fetchWithTimeout } from '../api_utils';\nvideoUrlParser.plugins.youtube = new YouTubeExtend();\n\nclass ViewMode {\n constructor($element) {\n this.$element = $element;\n }\n\n replace() {\n document.querySelectorAll('oembed[url]').forEach(async elem => {\n const videoInfo = videoUrlParser.parse(elem.attributes.url.value);\n\n if (videoInfo) {\n switch (videoInfo.provider) {\n case 'vimeo':\n elem.parentElement.innerHTML = this.createVideoBlock(`//player.vimeo.com/video/${videoInfo.id}`);\n break;\n case 'youtube':\n elem.parentElement.innerHTML = this.createVideoBlock(`//www.youtube.com/embed/${videoInfo.id}`);\n break;\n }\n }\n else if (elem.attributes.url.value) {\n const card = await this.createOGCard(elem.attributes.url.value);\n elem.parentElement.innerHTML = card;\n }\n });\n }\n\n createVideoBlock(url) {\n const videoContainer = document.createElement('div');\n const iframe = document.createElement('iframe');\n iframe.setAttribute('width', '100%');\n iframe.setAttribute('height', '100%');\n iframe.setAttribute('src', url);\n iframe.setAttribute('frameborder', 0);\n iframe.setAttribute('allowfullscreen', '');\n videoContainer.className = 'video-container';\n videoContainer.appendChild(iframe);\n return videoContainer.outerHTML;\n }\n\n async createOGCard(request_url) {\n const url = encodeURIComponent(request_url);\n const response = await fetchWithTimeout(`/open_graph?url=${url}`);\n const json = await response.json();\n return json.html;\n }\n}\n\nexport default ViewMode;\n","/**\n * usage:\n * - 1. loadingTargetを position: relative\n * - 2. loadingTargetに中に <%= render partial: 'shared/loader' %>入れる\n *\n * @param loadingTarget\n * @param disableTargets\n * @param callback\n * @returns {Promise}\n */\nexport async function withLoadingAndDisable(loadingTarget, disableTargets, callback) {\n try {\n // loading\n loadingTarget.classList.add('-loading');\n // disable\n if (disableTargets) {\n disableTargets.forEach(el => {\n el.disabled = true;\n });\n }\n\n const result = await callback();\n\n // loading off\n loadingTarget.classList.remove('-loading');\n // disable off\n if (disableTargets) {\n disableTargets.forEach(el => {\n el.disabled = false;\n });\n }\n\n return result;\n } catch (e) {\n console.error('error: ', e);\n\n // loading off\n loadingTarget.classList.remove('-loading');\n // disable off\n if (disableTargets) {\n disableTargets.forEach(el => {\n el.disabled = false;\n });\n }\n return null;\n }\n}\n\nfunction wait(ms) {\n return new Promise(resolve => {\n setTimeout(resolve, ms);\n });\n}\n\n/**\n * @param requestCb\n * @param stopConditionCb\n * @param intervalMs\n * @returns {Promise<*>}\n */\nexport async function pollingRequest(requestCb, stopConditionCb, intervalMs = 5000) {\n let result = await requestCb();\n while (!stopConditionCb(result)) {\n await wait(intervalMs);\n result = await requestCb();\n }\n return result;\n}\n\n/**\n * @deprecated\n * use utils/csrf.util.ts\n * jsでtsは参照はできないので、getCsrfToken()を使うjsが viteからcompileされる時だけrefactoringすること\n */\nexport function getCsrfToken() {\n return document.querySelector('meta[name=\"csrf-token\"]').getAttribute('content');\n}\n\nexport function jqueryAjaxBeforeSend(xhr) {\n xhr.setRequestHeader('X-CSRF-Token', getCsrfToken());\n}\n\nexport function apiFailResultHandler(e, message) {\n console.error(e);\n if (e.responseJSON && e.responseJSON.status === 400) {\n alert(e.responseJSON.message);\n } else {\n alert(message);\n }\n}\n\nexport async function fetchWithTimeout(resource, options = {}) {\n const { timeout = 10000 } = options;\n\n const controller = new AbortController();\n const id = setTimeout(() => controller.abort(), timeout);\n\n const response = await fetch(resource, {\n headers: {\n 'Accept': 'application/json',\n 'X-CSRF-TOKEN': getCsrfToken(),\n },\n ...options,\n signal: controller.signal\n });\n clearTimeout(id);\n\n return response;\n}\n\n/**\n * objectから、null, undefined, ''の値を削除して、URLSearchParamsを作成する\n * 0は残した場合があるため、truthyは使わない\n *\n * @param paramsObj\n * @returns {module:url.URLSearchParams}\n */\nexport function buildSafeURLSearchParams(paramsObj) {\n for (const key of Object.keys(paramsObj)) {\n if (paramsObj[key] === null || paramsObj[key] === undefined || paramsObj[key] === '') {\n delete paramsObj[key];\n }\n }\n return new URLSearchParams(paramsObj);\n}\n","import _debounce from 'lodash/debounce'\n\nexport default class Like {\n constructor(classname, sns_animation = false, rootElement = document) {\n this.sns_animation = sns_animation\n this.classname = classname\n this.$buttons = rootElement.querySelectorAll(this.classname)\n this.hide_event = null\n this.long_touch_event = null\n\n if (this.$buttons.length < 1) return\n\n this.$buttons.forEach((elem, n) => this.clickEvent(elem))\n this.$buttons.forEach((elem, n) => this.hoverEvent(elem))\n this.$buttons.forEach((elem, n) => this.touchEvent(elem))\n }\n\n animationend(e) {\n setTimeout(() => {\n e.target.classList.add('like-anime-hidden')\n e.target.classList.remove('like-animation')\n }, 500)\n }\n\n hoverEvent(elem) {\n const reactionPopup = document.querySelector(\n `${this.classname}-popup[data-value=\"${elem.dataset.value}\"]`\n )\n if (!reactionPopup) return\n\n elem.addEventListener(\n 'mouseout',\n () => {\n this.popupHide(reactionPopup)\n }\n )\n elem.addEventListener(\n 'mouseover',\n () => {\n this.popupShowWithTimer(reactionPopup)\n reactionPopup.addEventListener('mouseover', () => {\n this.popupShow(reactionPopup)\n })\n reactionPopup.addEventListener('mouseout', () => {\n this.popupHide(reactionPopup)\n })\n }\n )\n }\n clickEvent(elem) {\n const eyecatch = document.querySelector(\n `${this.classname}-animation[data-value=\"${elem.dataset.value}\"]`\n )\n const reactionPopup = document.querySelector(\n `${this.classname}-popup[data-value=\"${elem.dataset.value}\"]`\n )\n\n if (this.sns_animation === true) {\n eyecatch.removeEventListener('animationend', this.animationend)\n eyecatch.addEventListener('animationend', this.animationend)\n }\n\n elem.addEventListener(\n 'click',\n _debounce(() => {\n if (!elem.dataset.method) return\n // 連打対策\n elem.disabled = !elem.disabled;\n if (elem.dataset.method === 'post' && this.sns_animation === true) {\n eyecatch.classList.remove('like-anime-hidden')\n eyecatch.classList.add('like-animation')\n }\n if (reactionPopup){\n reactionPopup.classList.add('popup_hide')\n }\n return this.formAction(elem)\n }, 400)\n )\n }\n\n async formAction({ dataset }) {\n let reactionParam = ''\n if (dataset.reaction != null){\n reactionParam = `&like_reaction_attributes[community_reaction_id]=${dataset.reaction}`\n }\n const response = await fetch(\n `${dataset.url}?${dataset.key}_id=${dataset.value}${reactionParam}`,\n {\n method: dataset.method,\n headers: {\n 'Content-Type': 'application/json',\n 'X-CSRF-Token': document\n .querySelector('meta[name=csrf-token]')\n .getAttribute('content'),\n },\n }\n )\n\n const text = await response.text()\n // $.ajaxのevalの代替しで`XXX.js.haml`の処理を実施\n await Function(`\"use strict\";return (${text})`)()\n\n // 上記`XXX.js.haml`で生成されたDOMにEventを付与\n const replacedButton = document.querySelector(\n `${this.classname}[data-key=\"${dataset.key}\"][data-value=\"${dataset.value}\"]`\n )\n\n replacedButton.classList.add(\n dataset.method === 'delete' ? '-unfilled' : '-filled'\n )\n\n this.clickEvent(replacedButton)\n this.hoverEvent(replacedButton)\n this.touchEvent(replacedButton)\n const reactionPopup = document.querySelector(\n `${this.classname}-popup[data-value=\"${dataset.value}\"]`\n )\n if (!reactionPopup) return\n const replacedButtons = reactionPopup.querySelectorAll(\n `${this.classname}[data-key=\"${dataset.key}\"][data-value=\"${dataset.value}\"]`\n )\n replacedButtons.forEach((elem, n) => { this.clickEvent(elem) })\n\n }\n\n isLessMD() {\n if (window.matchMedia && window.matchMedia('(max-device-width: 640px)').matches) {\n return true;\n } else {\n return false;\n }\n }\n\n touchEvent(elem) {\n if (!this.isLessMD()){ return; }\n\n const reactionPopup = document.querySelector(\n `${this.classname}-popup[data-value=\"${elem.dataset.value}\"]`\n )\n if (!reactionPopup) return\n\n elem.addEventListener(\n 'touchstart',\n (e) => {\n e.preventDefault()\n this.long_touch_event = setTimeout(() => {\n this.popupShowWithTimer(reactionPopup,5000)\n this.long_touch_event = null\n }, 500)\n }\n )\n elem.addEventListener(\n 'touchend',\n (e) => {\n if (this.long_touch_event){\n clearTimeout(this.long_touch_event)\n e.target.click()\n }\n const reactionButtons = document.querySelectorAll(\n `.c-Button-reaction[data-value=\"${elem.dataset.value}\"]`\n )\n reactionButtons.forEach((elem, n) => { \n if (elem.classList.contains('hovered')){\n elem.click()\n elem.classList.remove('hovered')\n return;\n }\n })\n this.popupHide(reactionPopup)\n }\n )\n elem.addEventListener(\n 'touchmove',\n (e) => {\n const touch = e.touches[0];\n const targetElement = document.elementFromPoint(touch.clientX, touch.clientY);\n const reactionButtons = document.querySelectorAll(\n `.c-Button-reaction[data-value=\"${elem.dataset.value}\"]`\n )\n reactionButtons.forEach((elem, n) => { \n if (elem === targetElement.closest('.c-Button-reaction')){\n elem.classList.add('hovered')\n }else{\n elem.classList.remove('hovered')\n }\n })\n }\n )\n }\n\n popupShowWithTimer(popupElem,duration = 1000) {\n popupElem.classList.remove('popup_hide')\n this.popupHide(popupElem,duration)\n }\n\n popupShow(popupElem) {\n if (this.hide_event){\n clearTimeout(this.hide_event)\n }\n popupElem.classList.remove('popup_hide')\n }\n\n popupHide(popupElem,duration = 1000) {\n if (this.hide_event){\n clearTimeout(this.hide_event)\n }\n this.hide_event = setTimeout(() => {\n popupElem.classList.add('popup_hide')\n }, duration)\n }\n}\n"],"sourceRoot":""}