{"version":3,"sources":["fivestar.js","fivestarhub.js","fivestarold.js","garage.js","recon.js","swic6.js","swic6Desktop.js","swic6mobile.js"],"names":["IREP","FSRegister","init","$","on","addClass","removeClass","slideUp","fadeIn","slideDown","submitManager","is","val","length","params","isManager","managerName","managerEmail","callApi","done","showTY","hide","show","FiveStarHub","global","OnlineParticipant","avatar","self","this","avatarImage","ko","computed","options","apiUrl","Comment","id","name","text","createdDate","dateText","observable","moment","fromNow","setInterval","defaultOptions","paxuid","extend","$chat","onlineParticipants","observableArray","comments","rateLimit","hub","connection","fiveStarHub","server","client","broadcastMessage","message","connected","participantConnected","participantDisconnected","flagMessage","CommentID","qs","start","a","b","c","find","e","preventDefault","sendMessage","siblings","commentID","data","which","currentWrapperPosition","wrapper","parent","children","animate","left","applyBindings","prototype","each","OnlineParticipants","i","push","LatestComments","ID","Name","Text","CreatedDate","scrollChatToBottom","grep","Avatar","results","remove","clientInitiated","messageID","removeMessage","item","scrollTop","scrollHeight","jQuery","fivestarold","closest","slideToggle","$root","tab","toggle","user","currentUID","$giveKudos","achievementUID","$kudos","type","url","uid","result","kudos","$img","src","append","addComment","title","position","offset","$body","$div","width","top","height","window","location","quickpoll","submitButton","qpData","Code","quizCode","CultureCode","cultureCode","CountryCode","countryCode","SQuestions","hfQuestions","StoreChainId","storeChainId","click","AnswerCode","AnswerText","ActivityTime","hfTimeStamp","css","divSubmit","html","Garage","$garage","$market","$astrocomm","insertUserInfo","levelUpdate","insertNewTools","updateInsertNewShip","initialFunction","level","chips","bubbleImage","Math","floor","random","tools","selectedTool","parts","selectedPart","stash","selectedStash","shipSelection","pilotInfo","market","selectedMarketItem","ship","fuelBase","fuelSupply","fuelBought","fuel","subscribe","value","chargeBase","chargeSupply","chargeBought","charge","shieldBase","shieldSupply","shieldBought","shield","shieldType","costBase","costSupply","cost","hover","hoverName","hoverDistance","numberWithCommas","distance","hoverLevelRequired","hoverAccess","visit","visitName","visitDistance","visitLevelRequired","visitAccess","target","targetName","targetDistance","targetLevelRequired","targetAccess","targets","canLaunch","chipsAvailable","undefined","totalPoints","mission","gotoMainLandingPage","introSound","lunaticSounds","blue5Success","blue5Failure","howl","_gaq","track","label","trackMessage","trackVisit","trackTarget","trackTutorial","trackMenu","trackChart","openBlue5Message","event","srcElement","hasClass","goToTheNextPage","page","className","num","parseInt","substring","messageScreenToggle","glowTutorial","goToThePrevPage","lvlMsg","parentMsg","msg","playSound","file","stop","Howl","urls","play","delay","timeout","deferred","Deferred","setTimeout","resolve","promise","x","toString","replace","href","appUrl","openMessage","stopGlowing","soundFile","toggleClass","openHome","openHangar","openVendor","glowingBlue5","pulsate","element","opacity","openScreen","closeScreen","openMenu","d","currentTarget","attr","closeAll","astrocommScreenToggle","screen","visitSelect","_","toLowerCase","visitOver","visitOut","targetSelect","openChart","fuelProgress","offsetX","ammount","round","bought","chargeProgress","shieldProgress","shieldHeat","shieldImpact","getGarageInfo","when","then","items","UserTools","forEach","Item","category","description","imageUrl","UserStash","phantomParts","UserShipSelection","ships","ShipSelection","icon","levelId","UserInfo","PilotObject","pilot","status","shipName","UserMarket","grayMarketTools","Market","grayMarketParts","shipIcon","garageAugmentedParts","setAttribute","paidForTowing","success","paidTowCost","Mission","planetName","thruster","UserShip","Ship","UserParts","UserTarget","Target","numLandings","supply","legendaryPart","supplies","chooseYourShip","shipId","garage","fadeOut","launchShip","moveShipOffScreen","getMissionStatus","move","displayShip","bottom","launch","targetId","targetLevel","response","towingCost","legendary","payTheBill","timeoutId","mouseOver","mouseOut","clearTimeout","mouseOverStash","mouseOutStash","mouseOverPart","mouseOutPart","selectItem","targetEvent","parentElement","purchaseItemGrayMarket","str","itemId","augmented1","augmented2","incentiveId","incentiveCode","search","Recon","clearanceLevel","clearanceTextSpeed","doorSpeed","introRingCount","experiencePoints","experienceLevel","tway","selectedPosition","selectedMap","maps","easy","standard","countdownTime","crackTheCode","characters","split","words","threeWordMessages","fiveWordMessages","passMessage","failMessage","locateTheEnemy","pieces","$currentPage","currentAudio","currentAudioDeferred","textTimeoutID","countDown","quizContent","questionNumber","currentCountdownTime","clearanceText","clearanceTimeoutID","$clearance","crackTimeoutID","quizStartTime","quizAnswerTime","quizAnswers","resetGame","introStart","clearanceStart","audioFiles","audioFile","playAudio","getTimestamp","performance","now","webkitNow","Date","getTime","gameDefaults","callbacks","answer","exit","openDoor","closeDoor","switchPage","audio","stopAudio","onended","pause","currentTime","increaseProgressMeter","img","getAvailableClearanceLevels","getReconDetails","slideOutLinks","right","slideInLinks","shuffle","array","rand","j","swap","padRight","Array","join","game","typeText","$elem","textLength","textPosition","textBuffer","nextChar","charAt","updateExperiencePoints","updateExperienceLevel","updateProgressMeter","progressMeterCount","$lightsOn","todo","$lightsOff","selectTWayMap","displayTWayMap","displayNextTWayMap","introStop","off","introAddRings","one","ring","duration","progress","introTextStart","slice","introTextStop","clearanceUpdateReconDetails","quizStart","clearanceStop","clearanceUpdateLevels","clearanceLevels","$clearanceLevels","empty","$li","clearance-level","quizGetTime","crackSetup","locateSetup","twaySetup","quizGetClearanceContent","content","quizDisplayNextQuestion","Countdown","updateTime","totalTime","timings","remaining","quizStop","fail","call","question","questions","questionText","quizDisplayAnswers","$answers","answers","answerText","answer-id","answerId","question-id","questionId","quizSelectAnswer","quizLogAudit","answerTime","auditUID","concat","unanswered","splice","quizSubmitAnswers","elapsed","time","activityUID","crackStart","crackStop","crackResult","crackUpdateLettersRandomly","total","seconds","messages","numberWrong","min","numbers","word","l","insertBefore","pass","crackUpdateLettersToWord","passMessages","failMessages","$letters","chars","char","once","letters","index","arr","found","updateWord","obj","pop","locateStart","locateStop","locateResult","$imgs","moves","twayStart","twayStop","twayResult","display","fadeInStep","SWIC6","useApi","originalCircle","clone","poorMansPreloader","trackRecon","mode","trackNavigation","trackGarage","trackLeaderboard","trackStory","animateRings","animateRingsIntervalID","old","showMoon","hideMoon","clearInterval","klass","badges","badge","startRecon","getReconsAvailable","recons","showReconBoard","available","startReconInstructions","quizType","reconUID","prop","startQuiz","stopPropagation","getQuizTime","getReconDetail","detail","reconDetail","before","displayNextQuizQuestion","stopQuiz","recon","select2","select4","truefalse","wordreplace","multiplechoice","connect2","connect4","wordreplace4","increaseQuizIndicator","$quiz","$select2","img0","img1","logReconAudit","$select4","img2","img3","$truefalse","truefalse0","$wordreplace","wordreplace0","wordreplace1","wordreplace2","wordreplace3","$multiplechoice","$multiplechoice0","$multiplechoice1","$multiplechoice2","$multiplechoice3","$connect2","$connect20","$connect21","$connect22","$connect23","connect2count","$element","$connect4","$connect40","$connect41","$connect42","$connect43","$connect44","$connect45","$connect46","$connect47","connect4count","$wordreplace4","$wordreplace40","$wordreplace41","$wordreplace42","$wordreplace43","wordreplace4count","sequenceNo","filter","any","startQuizSummary","postReconResult","completed","correct","timeTaken","headers","Mobile","SWIC6Desktop","firstVisit","individualProfile","participants","personalProfile","profile","numOfLearnings","learnings","storeProfile","manager","schools","mysteryShop","storeDashboard","dashboard","voteForSchool","schoolId","getSchoolNominations","school","updateSchoolNominations","targetElement","totalNumOfVotes","storeLeaderboard","leaderboard","setupOnce","Object","create","constructor","showInitialView","navitem","switchNav","navEnabled","toggleNav","selectedPage","parentNode","style","indexOf","navProfileClick","navDashboardClick","navLeaderboardClick","keydown","parentDiv","comicPreviousSlide","comicNextSlide","hash","enabled","opendoor","possibleNavItems","all","waitToLoad","goToPage","resetStoryboard","fastCloseDoor","showGroupLeaderboards","showMysteryShop","showManager","hideStoryboard","hideLeaderboard","hideReconBoard","resetLockNav","forceProfile","showLeaderboard","storeLevel","console","log","swic6Registration","SWIC6EarlyRegistration","getItemPopup","showItemPopup","popup","document","getElementById","innerHTML","typeid","updateItemPopup","showIndividualProfile","getIndividualProfile","getIndividualLeaderboard","getNumOfLearnings","individual","individualinfo","numOfLeanings","info","getTokenRedemption","randomEntries","drawingEntries","availableTokens","getManagerInfo","getStoreProfile","getStoreDashboard","getMysteryShop","showStoreDashboard","managerInfo","mysteryShopDetail","updateSchool","schoolInfo","noms","totalVotes","votes","showStoreLeaderboard","getStoreLeaderboard","fastOpenDoor","setupReconBoard","videoEvent","storyline","crewLogButton","trans1button","trans2button","trans3button","origin","ShowComic","changeStoryboardCharacter","character","characterDiv","comic","goToComicPage","urlTemplate","substr","imgUrl","comicDiv","imgSelector","pageCount","focus","slideNumber","nextSlideNumber","previousSlideNumber","change","disableForGM","disableForDM","disableForAU","setupSchoolNominations","submitAU","disabled","validateManagerInfo","errors","rg","match","border","city","state","submitSchoolNomination","validateSchoolNomination","SWIC6Mobile","fadeTransition","startHome","startLeaderboardNav","startGarage","startProfile","startDashboard","startLeaderboard","startToken","getProfile","setupTokens","token","tokensAvailable","utc","revealImage","add","hours","dayOfYear","openHomeTab","openPilotStatus","openFlightSummary","openPartsCollection","openStashCollection"],"mappings":"AAAAA,KAAKC,WAAa,WAEd,GAAIC,GAAO,WACPC,EAAE,YAAYC,GAAG,QAAS,WACtBD,EAAE,YAAYE,SAAS,iBACvBF,EAAE,eAAeG,YAAY,iBAC7BH,EAAE,gBAAgBI,QAAQ,KAC1BJ,EAAE,kBAAkBK,OAAO,OAE/BL,EAAE,eAAeC,GAAG,QAAS,WACzBD,EAAE,eAAeE,SAAS,iBAC1BF,EAAE,YAAYG,YAAY,iBAC1BH,EAAE,gBAAgBM,UAAU,KAC5BN,EAAE,kBAAkBK,OAAO,OAE/BL,EAAE,kBAAkBC,GAAG,QAAS,WAAcM,OAG9CA,EAAgB,WAChB,GAAIP,EAAE,gBAAgBQ,GAAG,YACrB,GAAIR,EAAE,gBAAgBS,MAAMC,OAAS,EAEjC,GADAV,EAAE,gBAAgBG,YAAY,SAC1BH,EAAE,iBAAiBS,MAAMC,OAAS,EAAG,CACrCV,EAAE,iBAAiBG,YAAY,QAC/B,IAAIQ,IAAWC,WAAW,EAAOC,YAAab,EAAE,gBAAgBS,MAAOK,aAAcd,EAAE,iBAAiBS,MACxGZ,MAAKkB,QAAQ,uBAAwB,OAAQJ,GAAQK,KAAK,cAE1DC,QAEAjB,GAAE,iBAAiBE,SAAS,aAGhCF,GAAE,gBAAgBE,SAAS,aAE5B,CACH,GAAIS,IAAWC,WAAW,EAAMC,YAAa,GAAIC,aAAc,GAC/DjB,MAAKkB,QAAQ,uBAAwB,OAAQJ,GAAQK,KAAK,cAE1DC,MAIJA,EAAS,WACTjB,EAAE,+CAA+CkB,OACjDlB,EAAE,iBAAiBmB,OAGvB,QACIpB,KAAKA;AChDbF,KAAKuB,YAAe,SAAUC,EAAQrB,GAClC,GAAIsB,GAAoB,SAAUC,GAC9B,GAAIC,GAAOC,IAEXA,MAAKF,OAASA,EACdE,KAAKC,YAAcC,GAAGC,SAAS,WAC3B,MAAO/B,MAAKgC,QAAQC,OAAS,sBAAwBN,EAAKD,UAI9DQ,EAAU,SAAUC,EAAIC,EAAMC,EAAMC,GACpC,GAAIX,GAAOC,IACXA,MAAKO,GAAKA,EACVP,KAAKQ,KAAOA,EACZR,KAAKS,KAAOA,EACZT,KAAKU,YAAcA,EACnBV,KAAKW,SAAWT,GAAGU,WAAWC,OAAOH,GAAaI,WAElDC,YAAY,WACRhB,EAAKY,SAASE,OAAOd,EAAKW,aAAaI,YACxC,MAGHnB,EAAc,SAAUS,GACxB,GAAIL,GAAOC,KAEPgB,GACAC,OAAQ,GAGZjB,MAAKI,QAAU7B,EAAE2C,OAAOlB,KAAKI,QAASY,EAAgBZ,GACtDJ,KAAKmB,MAAQ5C,EAAE,+BAEfyB,KAAKoB,mBAAqBlB,GAAGmB,oBAC7BrB,KAAKsB,SAAWpB,GAAGmB,oBAEnBrB,KAAKoB,mBAAmBF,QAASK,UAAW,KAG5CvB,KAAKwB,IAAMjD,EAAEkD,WAAWC,YACxB1B,KAAK2B,OAAS3B,KAAKwB,IAAIG,OACvB3B,KAAKwB,IAAII,OAAOC,iBAAmB,SAAUC,GACzC/B,EAAK8B,iBAAiBC,IAE1B9B,KAAKwB,IAAII,OAAOG,UAAY,SAAUD,GAClC/B,EAAKgC,UAAUD,IAEnB9B,KAAKwB,IAAII,OAAOI,qBAAuB,SAAUF,GAC7C/B,EAAKiC,qBAAqBF,IAE9B9B,KAAKwB,IAAII,OAAOK,wBAA0B,SAAUH,GAChD/B,EAAKkC,wBAAwBH,IAEjC9B,KAAKwB,IAAII,OAAOM,YAAc,SAAUJ,GACpC/B,EAAKmC,aAAY,EAAOJ,EAAQK,YAGpC5D,EAAEkD,WAAWD,IAAIY,IAAOnB,OAAQb,EAAQa,QACxC1C,EAAEkD,WAAWD,IAAIa,SAAU,SAAUC,EAAGC,EAAGC,GACvCjE,EAAE,yBAAyBkE,KAAK,KAAKjE,GAAG,QAAS,SAAUkE,GACvDA,EAAEC,iBACF5C,EAAK6C,YAAYrE,EAAEyB,MAAM6C,SAAS,SAAS7D,OAC3CT,EAAEyB,MAAM6C,SAAS,SAAS7D,IAAI,MAGlCT,EAAE,yBAAyBC,GAAG,QAAS,QAAS,SAAUkE,GACtD,GAAII,GAAYvE,EAAEyB,MAAM+C,KAAK,YAC7BhD,GAAKmC,aAAY,EAAMY,KAG3BvE,EAAE,+BAA+BC,GAAG,WAAY,SAAUkE,GACtC,KAAZA,EAAEM,QACFjD,EAAK6C,YAAYrE,EAAEyB,MAAMhB,OACzBT,EAAEyB,MAAMhB,IAAI,OAIpBe,EAAKkD,uBAAyB,EAC9B1E,EAAE,+BAA+BC,GAAG,QAAS,SAAUkE,GACnD,GAAIQ,GAAU3E,EAAEyB,MAAMmD,SAASV,KAAK,WAChCS,GAAQE,WAAWnE,OAAS,IAAMc,EAAKkD,uBAAyB,GAAKC,EAAQE,WAAWnE,SACxFc,EAAKkD,yBACLC,EAAQG,SAAUC,KAAM,cAIhC/E,EAAE,+BAA+BC,GAAG,QAAS,SAAUkE,GACnD,GAAIQ,GAAU3E,EAAEyB,MAAMmD,SAASV,KAAK,WAChCS,GAAQE,WAAWnE,OAAS,IAAMc,EAAKkD,uBAAyB,IAChElD,EAAKkD,yBACLC,EAAQG,SAAUC,KAAM,gBAKpCpD,GAAGqD,cAAcvD,KAAMzB,EAAE,yBAAyB,IAqFtD,OA/EAoB,GAAY6D,UAAUZ,YAAc,SAAUd,GAC/B9B,KAEN2B,OAAOG,QAAQA,IAGxBnC,EAAY6D,UAAUzB,UAAY,SAAUD,GACxC,GAAI/B,GAAOC,IAEXzB,GAAEkF,KAAK3B,EAAQ4B,mBAAoB,SAAUC,EAAGjB,GAC5C3C,EAAKqB,mBAAmBwC,KAAK,GAAI/D,GAAkB6C,MAGvDnE,EAAEkF,KAAK3B,EAAQ+B,eAAgB,SAAUF,EAAGjB,GACxC3C,EAAKuB,SAASsC,KAAK,GAAItD,GAAQoC,EAAEoB,GAAIpB,EAAEqB,KAAMrB,EAAEsB,KAAMtB,EAAEuB,gBAG3DlE,EAAKmE,sBAGTvE,EAAY6D,UAAUxB,qBAAuB,SAAUF,GACnD,GAAI/B,GAAOC,IAMY,KAJTzB,EAAE4F,KAAKpE,EAAKqB,qBAAsB,SAAUsB,EAAGiB,GACzD,MAAOjB,GAAE5C,SAAWgC,EAAQsC,SAGpBnF,QACRc,EAAKqB,mBAAmBwC,KAAK,GAAI/D,GAAkBiC,EAAQsC,UAInEzE,EAAY6D,UAAUvB,wBAA0B,SAAUH,GACtD,GAAI/B,GAAOC,KAEPqE,EAAU9F,EAAE4F,KAAKpE,EAAKqB,qBAAsB,SAAUsB,EAAGiB,GACzD,MAAOjB,GAAE5C,SAAWgC,EAAQsC,QAG5BC,GAAQpF,OAAS,GACjBc,EAAKqB,mBAAmBkD,OAAOD,EAAQ,GAG5B9F,GAAE,iCACbwB,GAAKkD,uBAAyB,IAC9BlD,EAAKkD,yBACLC,QAAQG,SAAUC,KAAM,aAIhC3D,EAAY6D,UAAU3B,iBAAmB,SAAUC,GAC/C,GAAI/B,GAAOC,IAEXD,GAAKuB,SAASsC,KAAK,GAAItD,GAAQwB,EAAQgC,GAAIhC,EAAQiC,KAAMjC,EAAQkC,KAAMlC,EAAQmC,cAE/ElE,EAAKmE,sBAGTvE,EAAY6D,UAAUtB,YAAc,SAAUqC,EAAiBC,GAC3D,GAAIzE,GAAOC,MAEa,IAApBuE,GACAxE,EAAK4B,OAAOO,YAAYsC,GAE5BzE,EAAK0E,cAAcD,IAGvB7E,EAAY6D,UAAUiB,cAAgB,SAAUD,GACjCxE,KAENsB,SAASgD,OAAO,SAAUI,GAAQ,MAAOA,GAAKnE,KAAOiE,KAG9D7E,EAAY6D,UAAUU,mBAAqB,WACvC,GAAInE,GAAOC,IAEXD,GAAKoB,MAAMwD,UAAU5E,EAAKoB,MAAM,GAAGyD,eAGhCjF,GACTK,EAAM6E;ACrLRzG,KAAK0G,YAAe,WAChB,GAAIxG,GAAO,WA4BP,GA3BAC,EAAE,iCAAiCC,GAAG,QAAS,SAAUkE,GACrDA,EAAEC,iBACFpE,EAAEyB,MAAM+E,QAAQ,MAAMtC,KAAK,MAAMuC,gBAGrCzG,EAAE,6BAA6BC,GAAG,QAAS,mBAAoB,WAC3D,GAAIyG,GAAQ1G,EAAEyB,MAAM+E,QAAQ,mBAExBG,EAAM3G,EAAEyB,MAAM+C,KAAK,MACvBxE,GAAEyB,MAAM6C,WAAWnE,YAAY,YAC/BH,EAAEyB,MAAMvB,SAAS,YACjBwG,EAAMxC,KAAK,eAAehD,OAC1BwF,EAAMxC,KAAK,IAAMyC,GAAKxF,OAEtBuF,EAAMxC,KAAK,SAAShD,OACpBwF,EAAMxC,KAAK,SAAS/C,SAGxBnB,EAAE,6BAA6BC,GAAG,QAAS,eAAgB,WACvD,GAAIyG,GAAQ1G,EAAEyB,MAAM+E,QAAQ,mBACxBG,EAAMD,EAAMxC,KAAK,aAAaM,KAAK,MAEvCkC,GAAMxC,KAAK,IAAMyC,GAAKC,SACtBF,EAAMxC,KAAK,SAAS0C,SACpBF,EAAMxC,KAAK,SAAS0C,WAGpB5G,EAAE,qBAAqBU,OAAS,EAChC,CAAU,GAAIb,MAAKuB,aAAcsB,OAAU7C,KAAKgC,QAAQgF,KAAKC,aAGjE9G,EAAE,iCAAiCC,GAAG,QAAS,SAAUkE,GACrDA,EAAEC,gBACF,IAAI2C,GAAa/G,EAAEyB,MACfuF,EAAiBhH,EAAEyB,MAAM+C,KAAK,eAC9ByC,EAASjH,EAAEyB,MAAM6C,SAAS,SAC9BzE,MAAKkB,SAAUmG,KAAM,OAAQC,IAAK,6BAA8B3C,MAAQ4C,IAAKJ,KAAoBhG,KAAK,SAAUqG,GAC5G,IAAqB,IAAjBA,EAAOC,MAAgB,CACvB,GAAIC,GAAOvH,EAAE,UAAYwH,IAAK3H,KAAKgC,QAAQC,OAAS,uBAAyBjC,KAAKgC,QAAQgF,KAAKC,YAC/FG,GAAOQ,OAAOF,GACdR,EAAWhB,cAKvB/F,EAAE,2BAA2BC,GAAG,QAAS,SAAUkE,GAC/CA,EAAEC,gBAEF,IAAI4C,GAAiBhH,EAAEyB,MAAM+E,QAAQ,sBAAsBhC,KAAK,eAC5DtC,EAAOlC,EAAEyB,MAAM6C,SAAS,SAAS7D,KAErCiH,GAAWV,EAAgB9E,KAG/BlC,EAAE,+BAA+BC,GAAG,WAAY,SAAUkE,GACtD,GAAgB,KAAZA,EAAEM,MAAc,CAChB,GAAIuC,GAAiBhH,EAAEyB,MAAM+E,QAAQ,sBAAsBhC,KAAK,eAC5DtC,EAAOlC,EAAEyB,MAAMhB,KAEnBiH,GAAWV,EAAgB9E,MAInClC,EAAE,iCAAiCC,GAAG,QAAS,SAAUkE,GACrDnE,EAAE,YAAY+F,QACd,IAAI4B,GAAQ3H,EAAEyB,MAAM+C,KAAK,iBACrBtC,EAAOlC,EAAEyB,MAAM+C,KAAK,gBACpBoD,EAAW5H,EAAEyB,MAAM+C,KAAK,oBAExBqD,EAAS7H,EAAEyB,MAAMoG,SACjBC,EAAQ9H,EAAE,QACV+H,EAAO/H,EAAE,qDAAuD2H,EAAQ,WAAazF,EAAO,aAEhG4F,GAAML,OAAOM,GACI,UAAbH,EACAG,EAAKF,QAAS9C,KAAM8C,EAAO9C,KAAOgD,EAAKC,QAAU,EAAGC,IAAKJ,EAAOI,IAAMF,EAAKG,SAAW,KAEtFH,EAAKF,QAAS9C,KAAM8C,EAAO9C,KAAMkD,IAAKJ,EAAOI,IAAMF,EAAKG,SAAW,KAGvEH,EAAK7D,KAAK,UAAUjE,GAAG,QAAS,WAC5BD,EAAE,YAAY+F,cAKtB2B,EAAa,SAAUV,EAAgB9E,GACvCrC,KAAKkB,SAAUmG,KAAM,OAAQC,IAAK,+BAAgC3C,MAAQ4C,IAAKJ,EAAgB9E,KAAMA,KAAUlB,KAAK,SAAUqG,GAC1HrH,EAAE,2CAA8CgH,EAAiB,YAAavG,IAAI,IAClF0H,OAAOC,SAAWD,OAAOC,WAIjC,QACIrI,KAAMA,MAIdF,KAAK0G,YAAY8B,UAAY,WACzB,GAAIC,EA4BJ,QACIvI,KA3BO,SAAU8B,GAEjB,GAAI0G,KACJA,GAAOC,KAAO3G,EAAQ4G,SACtBF,EAAOG,YAAc7I,KAAKgC,QAAQgF,KAAK8B,YACvCJ,EAAOK,YAAc/I,KAAKgC,QAAQgF,KAAKgC,YACvCN,EAAOO,WAAajH,EAAQkH,YAC5BR,EAAOS,aAAenH,EAAQoH,aAC9BX,EAAezG,EAAQyG,aAEvBtI,EAAE6B,EAAQyG,cAAcY,MAAM,WAC1B,OAAuC,KAA5BlJ,EAAE,iBAAiBS,MAUvB,OAAO,CATV8H,GAAOY,WAAanJ,EAAE,iBAAiBS,MACvC8H,EAAOa,WAAa,GACpBb,EAAOc,aAAexH,EAAQyH,YAC9BtJ,EAAEsI,GAAciB,IAAI,UAAW,QAC/BvJ,EAAE6B,EAAQ2H,WAAWD,IAAI,cAAe,QACxCvJ,EAAE6B,EAAQ2H,WAAWC,KAAK,yBAC1B5J,KAAKkB,QAAQ,uBAAwB,OAAQwH,GAAQvH,KAAK,SAAUwD;ACxHpF3E,KAAK6J,OAAU,WACX,GAEIA,GAAS,WACT,GAAIlI,GAAOC,IAEXA,MAAKkI,QAAU3J,EAAE,WACjByB,KAAKmI,QAAU5J,EAAE,WACjByB,KAAKoI,WAAapI,KAAKkI,QAAQzF,KAAK,cAEpClE,EAAE,WAAW+F,SACbvE,EAAKsI,iBACLtI,EAAKuI,cACLvI,EAAKwI,iBACLxI,EAAKyI,sBAELzI,EAAK0I,kBAELzI,KAAK0I,MAAQxI,GAAGU,aAChBZ,KAAK2I,MAAQzI,GAAGU,WAAW,GAE3BZ,KAAK4I,YAAc1I,GAAGC,SAAS,WAC3B,MAAO0I,MAAKC,MAAsB,EAAhBD,KAAKE,UAAgB,IAG3C/I,KAAKgJ,MAAQ9I,GAAGmB,oBAEhBrB,KAAKiJ,aAAe/I,GAAGU,WAAW,MAElCZ,KAAKkJ,MAAQhJ,GAAGmB,oBAChBrB,KAAKmJ,aAAejJ,GAAGU,WAAW,MAElCZ,KAAKoJ,MAAQlJ,GAAGmB,oBAChBrB,KAAKqJ,cAAgBnJ,GAAGU,WAAW,MAEnCZ,KAAKsJ,cAAgBpJ,GAAGmB,oBAExBrB,KAAKuJ,UAAYrJ,GAAGmB,kBAEpBrB,KAAKwJ,OAAStJ,GAAGmB,kBACjBrB,KAAKyJ,mBAAqBvJ,GAAGU,WAAW,MAExCZ,KAAK0J,KAAOxJ,GAAGmB,kBAEfrB,KAAK2J,SAAWzJ,GAAGU,WAAW,IAC9BZ,KAAK4J,WAAa1J,GAAGU,WAAW,GAChCZ,KAAK6J,WAAa3J,GAAGU,WAAW,GAEhCZ,KAAK8J,KAAO5J,GAAGC,SAAS,WACpB,MAAOJ,GAAK4J,WAAY5J,EAAK6J,aAAe7J,EAAK8J,eAGrD7J,KAAK8J,KAAKC,UAAU,SAAUC,GAC1BjK,EAAKmI,QAAQzF,KAAK,mCAAmC8D,MAAMyD,EAAQ,OAGvEhK,KAAKiK,WAAa/J,GAAGU,WAAW,GAChCZ,KAAKkK,aAAehK,GAAGU,WAAW,GAClCZ,KAAKmK,aAAejK,GAAGU,WAAW,GAElCZ,KAAKoK,OAASlK,GAAGC,SAAS,WACtB,MAAOJ,GAAKkK,aAAelK,EAAKmK,eAAiBnK,EAAKoK,iBAG1DnK,KAAKoK,OAAOL,UAAU,SAAUC,GAC5BjK,EAAKmI,QAAQzF,KAAK,qCAAqC8D,MAAMyD,EAAQ,OAGzEhK,KAAKqK,WAAanK,GAAGU,WAAW,IAChCZ,KAAKsK,aAAepK,GAAGU,WAAW,GAClCZ,KAAKuK,aAAerK,GAAGU,WAAW,GAElCZ,KAAKwK,OAAStK,GAAGC,SAAS,WACtB,MAAOJ,GAAKsK,aAAetK,EAAKuK,eAAiBvK,EAAKwK,iBAG1DvK,KAAKwK,OAAOT,UAAU,SAAUC,GAC5BjK,EAAKmI,QAAQzF,KAAK,qCAAqC8D,MAAMyD,EAAQ,OAGzEhK,KAAKyK,WAAavK,GAAGU,WAAW,UAEhCZ,KAAK0K,SAAWxK,GAAGC,SAAS,WACxB,MAAOJ,GAAK+J,OAAS/J,EAAKqK,SAAWrK,EAAKyK,SAAU,KAExDxK,KAAK2K,WAAazK,GAAGU,WAAW,GAEhCZ,KAAK4K,KAAO1K,GAAGC,SAAS,WACpB,MAAOJ,GAAK2K,WAAa3K,EAAK4K,eAGlC3K,KAAK6K,MAAQ3K,GAAGU,WAAW,MAC3BZ,KAAK8K,UAAY5K,GAAGC,SAAS,WACzB,MAAwB,QAAjBJ,EAAK8K,QAAmB9K,EAAK8K,QAAQrK,OAAS,WAEzDR,KAAK+K,cAAgB7K,GAAGC,SAAS,WAC7B,MAAwB,QAAjBJ,EAAK8K,QAAmB5C,EAAO+C,iBAAiBjL,EAAK8K,QAAQI,YAAc,MAEtFjL,KAAKkL,mBAAqBhL,GAAGC,SAAS,WAClC,MAAwB,QAAjBJ,EAAK8K,QAAmB9K,EAAK8K,QAAQnC,QAAU,MAE1D1I,KAAKmL,YAAcjL,GAAGC,SAAS,WAC3B,MAAqB,QAAjBJ,EAAK8K,QACA9K,EAAK2I,SAAW3I,EAAK8K,QAAQnC,SAAqC,UAAxB3I,EAAK8K,QAAQrK,OACjD,YAEuB,UAAxBT,EAAK8K,QAAQrK,QAAwBT,EAAK2I,SAAW3I,EAAK8K,QAAQnC,UAAqC,KAAxB3I,EAAK2J,OAAO,GAAGnJ,MAAuC,KAAxBR,EAAK2J,OAAO,GAAGnJ,MAC3H,YAGA,WAIR,WAIXP,KAAKoL,MAAQlL,GAAGU,WAAW,MAC3BZ,KAAKqL,UAAYnL,GAAGC,SAAS,WACzB,MAAwB,QAAjBJ,EAAKqL,QAAmBrL,EAAKqL,QAAQ5K,OAAS,WAEzDR,KAAKsL,cAAgBpL,GAAGC,SAAS,WAC7B,MAAwB,QAAjBJ,EAAKqL,QAAmBnD,EAAO+C,iBAAiBjL,EAAKqL,QAAQH,YAAc,MAEtFjL,KAAKuL,mBAAqBrL,GAAGC,SAAS,WAClC,MAAwB,QAAjBJ,EAAKqL,QAAmBrL,EAAKqL,QAAQ1C,QAAU,MAE1D1I,KAAKwL,YAActL,GAAGC,SAAS,WAC3B,MAAqB,QAAjBJ,EAAKqL,QACDrL,EAAK2I,SAAW3I,EAAKqL,QAAQ1C,QACtB,YAEA,WAIR,WAGX1I,KAAKyL,OAASvL,GAAGU,WAAW,MAC5BZ,KAAK0L,WAAaxL,GAAGC,SAAS,WAC1B,MAAyB,QAAlBJ,EAAK0L,SAAoB1L,EAAK0L,SAASjL,OAAS,WAE3DR,KAAK2L,eAAiBzL,GAAGC,SAAS,WAC9B,MAAyB,QAAlBJ,EAAK0L,SAAoBxD,EAAO+C,iBAAiBjL,EAAK0L,SAASR,YAAc,MAExFjL,KAAK4L,oBAAsB1L,GAAGC,SAAS,WACnC,MAAyB,QAAlBJ,EAAK0L,SAAoB1L,EAAK0L,SAAS/C,QAAU,MAE5D1I,KAAK6L,aAAe3L,GAAGC,SAAS,WAC5B,MAAsB,QAAlBJ,EAAK0L,SACD1L,EAAK2I,SAAW3I,EAAK0L,SAAS/C,QACvB,YAEA,WAIR,WAGX1I,KAAK8L,QAAU5L,GAAGmB,oBAElBrB,KAAK+L,UAAY7L,GAAGC,SAAS,WACzB,GAAI2J,GAAO/J,EAAK+J,OACZM,EAASrK,EAAKqK,SACdI,EAASzK,EAAKyK,SACdC,EAAa1K,EAAK0K,aAClBgB,EAAS1L,EAAK0L,SACd/C,EAAQ3I,EAAK2I,QACbgB,EAAO3J,EAAK2J,OAEZsC,EAAiB,CAQrB,YAN4BC,KAAxBlM,EAAKwJ,YAAY,QACuB0C,KAApClM,EAAKwJ,YAAY,GAAG2C,cACpBF,EAAiBjM,EAAKwJ,YAAY,GAAG2C,eAIzCpC,EAAQ/J,EAAK4J,WAAa5J,EAAK6J,cAAiBQ,EAAUrK,EAAKkK,aAAelK,EAAKmK,gBAAmBM,EAAUzK,EAAKsK,aAAetK,EAAKuK,gBAAkC,WAAfG,GAAsC,OAAXgB,GAAmB/C,GAAS+C,EAAO/C,SAAWgB,EAAKzK,OAAS,GAAK+M,GAAkBjM,EAAK6K,QAA4B,UAAlBa,EAAOjL,QAAsD,IAAhCT,EAAKuJ,gBAAgBrK,QAGtU6K,EAAQ/J,EAAK4J,WAAa5J,EAAK6J,cAAiBQ,EAAUrK,EAAKkK,aAAelK,EAAKmK,gBAAmBM,EAAUzK,EAAKsK,aAAetK,EAAKuK,gBAAkC,WAAfG,GAAsC,OAAXgB,GAAmB/C,GAAS+C,EAAO/C,SAAWgB,EAAKzK,OAAS,GAAK+M,GAAkBjM,EAAK6K,QAA4B,UAAlBa,EAAOjL,SAAwC,KAAjBkJ,EAAK,GAAGnJ,MAAgC,KAAjBmJ,EAAK,GAAGnJ,OAAgD,IAAhCR,EAAKuJ,gBAAgBrK,SAOxYV,EAAE,eAAeC,GAAG,QAAS,WACzBD,EAAE,eAAekB,SAGrBlB,EAAE,cAAcC,GAAG,QAAS,WACxBD,EAAE,cAAckB,SAGpBO,KAAKmM,QAAUjM,GAAGU,WAAW,MAE7BZ,KAAKkI,QAAQzF,KAAK,cAAcjE,GAAG,QAASwB,KAAKoM,qBACjDpM,KAAKmI,QAAQ1F,KAAK,cAAcjE,GAAG,QAASwB,KAAKoM,qBAEjDpM,KAAKqM,YAAc,6DACnBrM,KAAKsM,eAAiB,2DAA4D,2DAA4D,2DAA2D,2DAA4D,2DAA4D,2DAA4D,2DAA4D,2DAA4D,2DAA4D,4DAA6D,4DAA6D,4DAA6D,4DAA6D,4DAA6D,4DAA6D,4DAA6D,4DAA6D,4DAA6D,4DAA6D,4DAA6D,6DAEhtCtM,KAAKuM,cAAgB,4DAA6D,4DAA6D,4DAA6D,4DAA6D,4DAA6D,8DAEtUvM,KAAKwM,cAAgB,4DAA6D,4DAA6D,6DAE/IxM,KAAKyM,KAAO,KAEZvM,GAAGqD,cAAcvD,KAEjB,KACI0M,KAAK9I,MAAM,kBAAmB,EAAG,SAAU,MAAO,IAClD8I,KAAK9I,MAAM,kBAAmB,EAAG,SAAU,MAAO,IAClD8I,KAAK9I,MAAM,cAAe,SAAU,UACtC,MAAOlB,KAogCb,OAjgCAuF,GAAOzE,UAAUmJ,MAAQ,SAAUlH,EAAMmH,EAAO5C,EAAOjH,GACnD3E,KAAKuO,MAAM,SAAUlH,EAAMmH,EAAO5C,EAAOjH,EACzC,KACI2J,KAAK9I,MAAM,cAAe,SAAU6B,EAAMmH,EAAO5C,IACnD,MAAOtH,MAGbuF,EAAOzE,UAAUqJ,aAAe,SAASD,EAAO5C,EAAOjH,GACnD/C,KAAK2M,MAAM,UAAWC,EAAO5C,EAAOjH,IAGxCkF,EAAOzE,UAAUsJ,WAAa,SAASF,EAAO5C,EAAOjH,GACjD/C,KAAK2M,MAAM,QAASC,EAAO5C,EAAOjH,IAGtCkF,EAAOzE,UAAUuJ,YAAc,SAAUH,EAAO5C,EAAOjH,GACnD/C,KAAK2M,MAAM,SAAUC,EAAO5C,EAAOjH,IAGvCkF,EAAOzE,UAAUwJ,cAAgB,SAAUJ,EAAO5C,EAAOjH,GACrD/C,KAAK2M,MAAM,WAAYC,EAAO5C,EAAOjH,IAGzCkF,EAAOzE,UAAUyJ,UAAY,SAASL,EAAO5C,EAAOjH,GAChD/C,KAAK2M,MAAM,OAAQC,EAAO5C,EAAOjH,IAGrCkF,EAAOzE,UAAU0J,WAAa,SAAUN,EAAO5C,EAAOjH,GAClD/C,KAAK2M,MAAM,QAASC,EAAO5C,EAAOjH,IAGtCkF,EAAOzE,UAAU2J,iBAAmB,SAAUpK,EAAMqK,GAChD7O,EAAE,gBAAgBuJ,IAAI,UAAW,QACjCvJ,EAAE,gBAAgBG,YAAY,UAC9B0O,EAAQA,GAAS1G,OAAO0G,KACxB,IAAI3B,GAAS2B,EAAM3B,QAAU2B,EAAMC,UAE/B9O,GAAEkN,GAAQ6B,SAAS,aACnB/O,EAAE,UAAUE,SAAS,UACrBF,EAAE,UAAUuJ,IAAI,UAAW,SAC3BvJ,EAAE,UAAUE,SAAS,UACrBF,EAAE,UAAUuJ,IAAI,UAAW,SAC3BvJ,EAAE,UAAUuJ,IAAI,UAAW,SAC3BvJ,EAAE,SAASuJ,IAAI,aAAc,WAC7BvJ,EAAE,SAASuJ,IAAI,aAAc,YAExBvJ,EAAEkN,GAAQ6B,SAAS,SACxB/O,EAAE,YAAYE,SAAS,UACvBF,EAAE,YAAYuJ,IAAI,UAAW,SAC7BvJ,EAAE,WAAWuJ,IAAI,UAAW,SAC5BvJ,EAAE,SAASuJ,IAAI,aAAc,WAC7BvJ,EAAE,SAASuJ,IAAI,aAAc,UAC7B9H,KAAKgN,cAAc,YAEdzO,EAAEkN,GAAQ6B,SAAS,SACxB/O,EAAE,YAAYE,SAAS,UACvBF,EAAE,YAAYuJ,IAAI,UAAW,SAC7BvJ,EAAE,WAAWuJ,IAAI,UAAW,SAC5BvJ,EAAE,SAASuJ,IAAI,aAAc,WAC7BvJ,EAAE,SAASuJ,IAAI,aAAc,UAC7B9H,KAAKgN,cAAc,YAEdzO,EAAEkN,GAAQ6B,SAAS,SACxB/O,EAAE,YAAYE,SAAS,UACvBF,EAAE,YAAYuJ,IAAI,UAAW,SAC7BvJ,EAAE,WAAWuJ,IAAI,UAAW,SAC5BvJ,EAAE,SAASuJ,IAAI,aAAc,WAC7BvJ,EAAE,SAASuJ,IAAI,aAAc,UAC7B9H,KAAKgN,cAAc,YAEdzO,EAAEkN,GAAQ6B,SAAS,UACxB/O,EAAE,YAAYE,SAAS,UACvBF,EAAE,YAAYuJ,IAAI,UAAW,SAC7BvJ,EAAE,WAAWuJ,IAAI,UAAW,SAC5BvJ,EAAE,SAASuJ,IAAI,aAAc,WAC7BvJ,EAAE,SAASuJ,IAAI,aAAc,UAC7B9H,KAAKgN,cAAc,aAI3B/E,EAAOzE,UAAU+J,gBAAkB,WAC/B,GAAIC,GAAOjP,EAAE,WAAWkE,KAAK,+BAC7B,IAAoB,IAAhB+K,EAAKvO,OAAc,CACnB,GAAIwO,GAAYlP,EAAEiP,GAAM,GAAGC,UACvBC,EAAMC,SAASF,EAAUG,UAAU,EAAG,IAAM,CAEnC,MAATF,EACAnP,EAAE,SAASuJ,IAAI,aAAc,UAG7BvJ,EAAE,SAASuJ,IAAI,aAAc,WAGrB,KAAR4F,IACAnP,EAAEiP,GAAM9O,YAAY,UACpBH,EAAE,QAAUmP,GAAKjP,SAAS,UAC1BuB,KAAK6N,oBAAoB,QAAQ,OAASH,GAC1C1N,KAAKgN,cAAc,OAASU,GAC5B1N,KAAK8N,aAAaJ,QAItBnP,GAAEiP,GAAM9O,YAAY,UACpBH,EAAE,UAAUE,SAAS,UACrBuB,KAAK6N,oBAAoB,QAAQ,SACjCtP,EAAE,SAASuJ,IAAI,aAAc,UAC7B9H,KAAK8N,aAAa,GAClB9N,KAAKgN,cAAc,UAI3B/E,EAAOzE,UAAUuK,gBAAkB,WAC/B,GAAIP,GAAOjP,EAAE,WAAWkE,KAAK,gCACzBuL,EAASzP,EAAE,WAAWkE,KAAK,sBAE/B,IAAmB,IAAf+K,EAAKvO,OAAa,CAClB,GAAIwO,GAAYlP,EAAEiP,GAAM,GAAGC,UACvBC,EAAMC,SAASF,EAAUG,UAAU,EAAG,IAAM,CAEpC,KAARF,IACA1N,KAAKkI,QAAQzF,KAAK,WAAWqF,IAAI,UAAW,QAAQpJ,YAAY,UAChEH,EAAE,gBAAgBuJ,IAAI,UAAW,SACjCvJ,EAAE,gBAAgBE,SAAS,UAC3BF,EAAE,UAAUkB,QAGZiO,GAAO,IACPnP,EAAE,SAASuJ,IAAI,aAAc,WAGtB,IAAP4F,IACAnP,EAAEiP,GAAM9O,YAAY,UACpBH,EAAE,QAAUmP,GAAKjP,SAAS,UAC1BuB,KAAK6N,oBAAoB,QAAQ,OAASH,GAC1C1N,KAAKgN,cAAc,OAASU,GAC5B1N,KAAK8N,aAAaJ,QAGA,KAAjBM,EAAO/O,SACZe,KAAKkI,QAAQzF,KAAK,WAAWqF,IAAI,UAAW,QAAQpJ,YAAY,UAChEH,EAAE,gBAAgBuJ,IAAI,UAAW,SACjCvJ,EAAE,gBAAgBE,SAAS,UAC3BF,EAAE,UAAUkB,SAIpBwI,EAAOzE,UAAUqK,oBAAsB,SAAUI,EAAWC,GACxDlO,KAAKkI,QAAQzF,KAAK,qCAAqChD,OACvDO,KAAKkI,QAAQzF,KAAK,cAAgBwL,GAAWvO,OAC7CM,KAAKkI,QAAQzF,KAAK,cAAgByL,GAAKxO,QAG3CuI,EAAOzE,UAAUsK,aAAe,SAAUpJ,GACtC,GAAI8I,GAAOjP,EAAE,WAAWkE,KAAK,YAEzB+K,GAAKvO,OAAS,GACdV,EAAEiP,GAAM9O,YAAY,YAGX,IAATgG,EACAnG,EAAE,UAAUE,SAAS,YAEP,IAATiG,EACLnG,EAAE,UAAUE,SAAS,YAEP,IAATiG,EACLnG,EAAE,UAAUE,SAAS,YAEP,IAATiG,EACLnG,EAAE,8BAA8BE,SAAS,YAE3B,IAATiG,EACLnG,EAAE,UAAUE,SAAS,YAEP,IAATiG,GACLnG,EAAE,SAASE,SAAS,YACpBF,EAAE,WAAWE,SAAS,YACtBF,EAAE,WAAWE,SAAS,aAER,KAATiG,EACLnG,EAAE,WAAWE,SAAS,YAER,KAATiG,GACLnG,EAAE,UAAUE,SAAS,aAI7BwJ,EAAOzE,UAAU2K,UAAY,SAAUC,GACjB,OAAdpO,KAAKyM,OACLzM,KAAKyM,KAAK4B,OACVrO,KAAKyM,KAAO,MAGhBzM,KAAKyM,KAAO,GAAI6B,OACZC,MAAOH,KAGXpO,KAAKyM,KAAK+B,QAGdvG,EAAOzE,UAAUiL,MAAQ,SAAUC,GAC/B,GAAIC,GAAWpQ,EAAEqQ,UAMjB,OAJAC,YAAW,WACPF,EAASG,WACVJ,GAEIC,EAASI,WAGpB9G,EAAO+C,iBAAmB,SAASgE,GAC/B,MAAOA,GAAEC,WAAWC,QAAQ,wBAAyB,MAGzDjH,EAAOzE,UAAU4I,oBAAsB,WACP,WAAxB7N,EAAEyB,MAAM+C,KAAK,SACb2D,OAAOC,SAASwI,KAAO/Q,KAAKgC,QAAQgP,OAAS,aAAe7Q,EAAEyB,MAAM+C,KAAK,SAIjFkF,EAAOzE,UAAU6L,YAAc,WAC3B,GAAItP,GAAOC,IACXD,GAAKuP,cAEgB,IAAjBvP,EAAK2I,SACLnK,EAAE,aAAaE,SAAS,WACxBF,EAAE,SAASE,SAAS,YAEE,IAAjBsB,EAAK2I,SACVnK,EAAE,aAAaE,SAAS,WACxBF,EAAE,SAASE,SAAS,YAEE,IAAjBsB,EAAK2I,SACVnK,EAAE,aAAaE,SAAS,WACxBF,EAAE,SAASE,SAAS,YAEE,IAAjBsB,EAAK2I,SACVnK,EAAE,aAAaE,SAAS,WACxBF,EAAE,SAASE,SAAS,YAGpBF,EAAE,aAAaE,SAAS,WAG5BuB,KAAKkI,QAAQzF,KAAK,WAAWqF,IAAI,UAAW,QAAQpJ,YAAY,UAChEH,EAAE,UAAUkB,OACZlB,EAAE,gBAAgBuJ,IAAI,UAAW,SACjCvJ,EAAE,gBAAgBE,SAAS,UAC3BuB,KAAK6M,aAAa,OAElB,IAAI0C,GAAYvP,KAAKqM,WAAWxD,KAAKC,MAAMD,KAAKE,SAAW/I,KAAKqM,WAAWpN,QAE3Ee,MAAKmO,UAAUoB,GAEfhR,EAAE,SAASG,YAAY,QACvBsB,KAAKkI,QAAQzF,KAAK,YAAY+M,YAAY,SAG9CvH,EAAOzE,UAAUiM,SAAW,WACxBlR,EAAE,SAASG,YAAY,QACvBsB,KAAKkI,QAAQzF,KAAK,SAAS+M,YAAY,QACvCxP,KAAKmI,QAAQ1F,KAAK,SAAS+M,YAAY,SAG3CvH,EAAOzE,UAAUkM,WAAa,WAC1B1P,KAAKkI,QAAQzF,KAAK,SAAS/D,YAAY,QACvCsB,KAAKmI,QAAQ1F,KAAK,SAAS/D,YAAY,QACvCsB,KAAKmI,QAAQ1I,OACbO,KAAKkI,QAAQxI,QAGjBuI,EAAOzE,UAAUmM,WAAa,WAC1B,GAAIpR,EAAE,WAAW+O,SAAS,UAAW,CACjCtN,KAAKmI,QAAQzI,OACbM,KAAKkI,QAAQzI,MAEb,IAAI8P,GAAYvP,KAAKsM,cAAczD,KAAKC,MAAMD,KAAKE,SAAW/I,KAAKsM,cAAcrN,QAEjFe,MAAKmO,UAAUoB,OAGfhR,GAAE,WAAWkB,MAEjBlB,GAAE,cAAckB,QAGpBwI,EAAOzE,UAAUoM,aAAe,WAI5B,QAASC,GAAQC,GACbvR,EAAE,YAAYuJ,IAAI,UAAW,GAC7BvJ,EAAEuR,GAAW9P,MAAM8H,IAAI,UAAW,GAElCvJ,EAAE,cAAc8E,SAAU0M,QAAS,GAAK,IAAM,WAC1CxR,EAAE,cAAc8E,SAAU0M,QAAS,GAAK,IAAMF,KARtDtR,EAAE,YAAYuJ,IAAI,UAAW,UAC7BvJ,EAAE,cAAcuJ,IAAI,UAAW,UAW/B+H,EAAQ,WAGZ5H,EAAOzE,UAAU8L,YAAc,WAC3B/Q,EAAE,YAAYkB,OACdlB,EAAE,cAAckB,OAChBlB,EAAE,UAAUuJ,IAAI,UAAW,IAG/BG,EAAOzE,UAAUwM,WAAa,WAC1BzR,EAAE,SAASG,YAAY,QACvBsB,KAAKkI,QAAQzF,KAAK,aAAa/D,YAAY,YAC3CsB,KAAKkI,QAAQzF,KAAK,WAAWqF,IAAI,UAAW,QAAQpJ,YAAY,UAEhEsB,KAAKkI,QAAQzF,KAAK,WAAW+M,YAAY,QAEzCxP,KAAKoI,WAAW3F,KAAK,mBAAmB+M,YAAY,SAGxDvH,EAAOzE,UAAUyM,YAAc,WAC3B1R,EAAE,SAASG,YAAY,SAG3BuJ,EAAOzE,UAAU0M,SAAW,SAAUC,EAAGzN,GAIrC,GAHA1C,KAAKkI,QAAQzF,KAAK,aAAa/D,YAAY,YAC3CsB,KAAKkI,QAAQzF,KAAK,WAAWqF,IAAI,UAAW,QAAQpJ,YAAY,UAE3DH,EAAEmE,EAAE0N,eAAe9C,SAAS,QAM7B/O,EAAE,SAASG,YAAY,YANe,CACtCH,EAAE,SAASG,YAAY,OACvB,IAAI+M,GAASlN,EAAEmE,EAAE0N,eAAeC,KAAK,QACrCrQ,MAAKiN,UAAUxB,GACflN,EAAEmE,EAAE0N,eAAe3R,SAAS,UAMpCwJ,EAAOzE,UAAU8M,SAAW,WACxBtQ,KAAKkI,QAAQzF,KAAK,SAAS/D,YAAY,QACvCsB,KAAKkI,QAAQzF,KAAK,aAAa/D,YAAY,YAC3CsB,KAAKmI,QAAQ1F,KAAK,SAAS/D,YAAY,QACvCsB,KAAKkI,QAAQzF,KAAK,WAAWqF,IAAI,UAAW,QAAQpJ,YAAY,WAExB,IAApCH,EAAE,WAAW+O,SAAS,WACtB/O,EAAE,WAAWkB,OAGjBlB,EAAE,cAAckB,QAGpBwI,EAAOzE,UAAU+M,sBAAwB,SAASC,GAC9CxQ,KAAKoI,WAAW3F,KAAK,2CAA2ChD,OAChEO,KAAKoI,WAAW3F,KAAK,cAAgB+N,GAAQ9Q,QAGjDuI,EAAOzE,UAAUiN,YAAc,SAAUnO,EAAGC,EAAGC,GAC3C,GAAIkJ,GAAanN,EAAEgE,EAAEkJ,QAAQ1I,KAAK,UAC9B0I,EAASiF,EAAEjO,KAAKzC,KAAK8L,UAAW,SAASpJ,EAAGiB,GAC5C,MAAOjB,GAAElC,OAAOmQ,eAAiBjF,GAGrC1L,MAAKoL,MAAMK,GACXzL,KAAKuQ,sBAAsB,UAC3BvQ,KAAK8M,WAAWpB,IAGpBzD,EAAOzE,UAAUoN,UAAY,SAAStO,EAAEC,EAAEC,GACtC,GAAIkJ,GAAanN,EAAEgE,EAAEkJ,QAAQ1I,KAAK,UAC9B0I,EAASiF,EAAEjO,KAAKzC,KAAK8L,UAAW,SAASpJ,EAAGiB,GAC5C,MAAOjB,GAAElC,OAAOmQ,eAAiBjF,GAGrC1L,MAAK6K,MAAMY,IAGfxD,EAAOzE,UAAUqN,SAAW,WACxB7Q,KAAK6K,MAAM,OAGf5C,EAAOzE,UAAUsN,aAAe,WAC5B9Q,KAAKyL,OAAOzL,KAAKoL,SACjBpL,KAAKuQ,sBAAsB,SAC3BvQ,KAAK+M,YAAY/M,KAAKyL,SAASjL,SAGnCyH,EAAOzE,UAAUuN,UAAY,WACzB,GAAIhR,GAAOC,IACXA,MAAKuQ,sBAAsB,SAC3BvQ,KAAKkN,WAAW,QAEhBnN,EAAKuI,cACLvI,EAAK0I,mBAGTR,EAAOzE,UAAUwN,aAAe,SAAU1O,EAAGI,GACzC,GAAI3C,GAAOC,KACPuG,EAAQhI,EAAEmE,EAAE0N,eAAe7J,QAC3B0K,EAAUvO,EAAEuO,QACZC,EAA6D,EAAnDrI,KAAKsI,OAAQF,EAAU1K,EAAQ,IAAO,GAAK,EAAG,GACxD6K,EAASF,EAAUnR,EAAK4J,WAAa5J,EAAK6J,YAE1CwH,IAAU,IACV7S,EAAEmE,EAAE0N,eAAe3N,KAAK,OAAO8D,MAAM2K,EAAU,KAE/ClR,KAAK6J,WAAWuH,KAIxBnJ,EAAOzE,UAAU6N,eAAiB,SAAU/O,EAAGI,GAC3C,GAAI3C,GAAOC,KACPuG,EAAQhI,EAAEmE,EAAE0N,eAAe7J,QAC3B0K,EAAUvO,EAAEuO,QACZC,EAA6D,EAAnDrI,KAAKsI,OAAQF,EAAU1K,EAAQ,IAAO,GAAK,EAAG,GACxD6K,EAASF,EAAUnR,EAAKkK,aAAelK,EAAKmK,cAE5CkH,IAAU,IACV7S,EAAEmE,EAAE0N,eAAe3N,KAAK,OAAO8D,MAAM2K,EAAU,KAE/ClR,KAAKmK,aAAaiH,KAI1BnJ,EAAOzE,UAAU8N,eAAiB,SAAUhP,EAAGI,GAC3C,GAAI3C,GAAOC,KACPuG,EAAQhI,EAAEmE,EAAE0N,eAAe7J,QAC3B0K,EAAUvO,EAAEuO,QACZC,EAA6D,EAAnDrI,KAAKsI,OAAQF,EAAU1K,EAAQ,IAAO,GAAK,EAAG,GACxD6K,EAASF,EAAUnR,EAAKsK,aAAetK,EAAKuK,cAE5C8G,IAAU,IACV7S,EAAEmE,EAAE0N,eAAe3N,KAAK,OAAO8D,MAAM2K,EAAU,KAE/ClR,KAAKuK,aAAa6G,KAI1BnJ,EAAOzE,UAAU+N,WAAa,WAC1BvR,KAAKyK,WAAW,QAChBzK,KAAKkI,QAAQzF,KAAK,6BAA6BhE,SAAS,YACxDuB,KAAKkI,QAAQzF,KAAK,+BAA+B/D,YAAY,aAGjEuJ,EAAOzE,UAAUgO,aAAe,WAC5BxR,KAAKyK,WAAW,UAChBzK,KAAKkI,QAAQzF,KAAK,6BAA6B/D,YAAY,YAC3DsB,KAAKkI,QAAQzF,KAAK,+BAA+BhE,SAAS,aAG9DwJ,EAAOzE,UAAUoL,SAAW,WACxB,GACID,GAAWpQ,EAAEqQ,UAEjB,OADAD,GAASG,UACFH,EAASI,WAGpB9G,EAAOzE,UAAUgF,oBAAsB,WAGnCpK,KAAKkB,SACDoG,IAAK,sBACLD,KAAM,OACN1C,WAORkF,EAAOzE,UAAUiO,cAAgB,WAC7B,MAAOrT,MAAKkB,SAAUoG,IAAK,kBAG/BuC,EAAOzE,UAAUiF,gBAAkB,WAC/B,GAAI1I,GAAOC,IAEXzB,GAAEmT,KAAK1R,KAAKyR,gBAAiBzR,KAAK4O,YAAY+C,KAAK,SAAUC,GAEzD,GAAIC,KACJD,GAAM,GAAG5I,MAAM8I,QAAQ,SAAUpP,GAC7BmP,EAAUjO,KAAK,GAAIqE,GAAO8J,KAAKhS,EAAM2C,EAAEsP,SAAUtP,EAAElC,KAAMkC,EAAEuP,YAAavP,EAAEwP,aAE9EnS,EAAKiJ,MAAM6I,EAGX,IAAIM,KACJP,GAAM,GAAGQ,aAAaN,QAAQ,SAAUpP,GACpCyP,EAAUvO,KAAK,GAAIqE,GAAO8J,KAAKhS,EAAM2C,EAAEsP,SAAUtP,EAAElC,KAAMkC,EAAEuP,YAAavP,EAAEwP,aAE9EnS,EAAKqJ,MAAM+I,EAGX,IAAIE,KACJT,GAAM,GAAGU,MAAMR,QAAQ,SAAUpP,GAC7B2P,EAAkBzO,KAAK,GAAIqE,GAAOsK,cAAcxS,EAAM2C,EAAEnC,GAAImC,EAAElC,KAAMkC,EAAEuP,YAAavP,EAAE8P,KAAM9P,EAAE+P,YAEjG1S,EAAKuJ,cAAc+I,GAEW,IAA1BT,EAAM,GAAGU,MAAMrT,SACfc,EAAKwQ,sBAAsB,iBAC3BxQ,EAAKiQ,aAIT,IAAI0C,KACJA,GAAS9O,KAAK,GAAIqE,GAAO0K,YAAY5S,EAAM6R,EAAM,GAAGgB,MAAMpS,KAAMoR,EAAM,GAAGgB,MAAMH,QAASb,EAAM,GAAGgB,MAAMC,OACvGjB,EAAM,GAAGgB,MAAME,SAAUlB,EAAM,GAAGgB,MAAMJ,KAAMZ,EAAM,GAAGgB,MAAM1G,cAE7DnM,EAAKwJ,UAAUmJ,GACf3S,EAAK2I,MAAMkJ,EAAM,GAAGgB,MAAMH,SAE1BlU,EAAE,WAAWkB,MAGb,IAAIsT,KACJ,QAAiC9G,KAA7B2F,EAAM,GAAGoB,iBAA8D,IAA7BpB,EAAM,GAAGoB,gBAAuB,CAC1EzU,EAAE,WAAWmB,OACbnB,EAAE,cAAcmB,OAChBnB,EAAE,WAAWE,SAAS,SACtB,IAAI+T,GAAO,6CACPtM,EAAQ,sBACR+L,EAAc,mKACd1R,EAAK,CACTwS,GAAWnP,KAAK,GAAIqE,GAAOgL,OAAOlT,EAAMQ,EAAIqR,EAAM,GAAGoB,gBAAiBR,EAAMtM,EAAO+L,QAElF,QAAiChG,KAA7B2F,EAAM,GAAGsB,iBAAmE,IAAlCtB,EAAM,GAAGsB,gBAAgBtI,KAAY,CACpFrM,EAAE,WAAWmB,OACbnB,EAAE,cAAcmB,OAChBnB,EAAE,WAAWE,SAAS,SACtB,IAAI+T,GAAOZ,EAAM,GAAGsB,gBAAgBC,SAChCjN,EAAQ0L,EAAM,GAAGsB,gBAAgBJ,SAAW,eAC5Cb,EAAc,uIACd1R,EAAK,EACLqK,EAAOgH,EAAM,GAAGsB,gBAAgBtI,IACpCmI,GAAWnP,KAAK,GAAIqE,GAAOgL,OAAOlT,EAAMQ,EAAIqK,EAAM4H,EAAMtM,EAAO+L,aAExBhG,KAAlC2F,EAAM,GAAGwB,0BAA2EnH,KAArC2F,EAAM,GAAGwB,qBAAqB,KAClF7U,EAAE,WAAWmB,OACbnB,EAAE,cAAcmB,OAChBnB,EAAE,WAAWE,SAAS,UACtBmT,EAAM,GAAGwB,qBAAqBtB,QAAQ,SAAUpP,GAC5CqQ,EAAWnP,KAAK,GAAIqE,GAAOgL,OAAOlT,EAAM2C,EAAEnC,GAAImC,EAAEkI,KAAMlI,EAAE8P,KAAM9P,EAAElC,KAAMkC,EAAEuP,gBAyBhF,IAtBAlS,EAAKyJ,OAAOuJ,GACZhT,EAAK0J,mBAAmBsJ,EAAW,QACM9G,KAArC1N,EAAE,iBAAiB6E,WAAW,IAC9B7E,EAAE,iBAAiB6E,WAAW,GAAGiQ,aAAa,QAAS,wBAI5B,IAA3BzB,EAAM,GAAG0B,gBAC8B,IAAnC1B,EAAM,GAAG0B,cAAcC,UAA4D,IAAvC3B,EAAM,GAAG0B,cAAcE,cAGnEzT,EAAKoM,QAAQ,GAAIlE,GAAOwL,QAAQ1T,EAAM6R,EAAM,GAAG0B,cAAcC,QAAS3B,EAAM,GAAG0B,cAAcxJ,KAAM8H,EAAM,GAAG0B,cAAclJ,OAAQwH,EAAM,GAAG0B,cAAc9I,OAAQoH,EAAM,GAAG0B,cAAc7I,WAAY,IAAK,OAAQ,EAAG,EAAG,EAAGmH,EAAM,GAAG0B,cAAcI,WAAY9B,EAAM,GAAG0B,cAAc5K,MAAOkJ,EAAM,GAAG0B,cAAcK,WAElT5T,EAAKiQ,aACLjQ,EAAKwQ,sBAAsB,WAC3BhS,EAAE,cAAckB,OAChBlB,EAAE,WAAWmB,OACbnB,EAAE,eAAemB,YAKK,KAAnBkS,EAAM,GAAO,KAAmB,CACvC,GAAIgC,KACJA,GAAShQ,KAAK,GAAIqE,GAAO4L,KAAK9T,EAAM6R,EAAM,GAAGlI,KAAKnJ,GAAIqR,EAAM,GAAGlI,KAAKlJ,KAAMoR,EAAM,GAAGlI,KAAKuI,YAAaL,EAAM,GAAGlI,KAAK8I,OACnHzS,EAAK2J,KAAKkK,OAET,CACD7T,EAAK2J,OAAOzK,OAAS,CACrB,IAAI2U,KACJ7T,GAAK2J,KAAKkK,EAEV,IAAIE,KACJlC,GAAM,GAAG1I,MAAM4I,QAAQ,SAAUpP,GAC7BoR,EAAUlQ,KAAK,GAAIqE,GAAO8J,KAAKhS,EAAM2C,EAAEsP,SAAUtP,EAAElC,KAAMkC,EAAEuP,YAAavP,EAAEwP,aAE9EnS,EAAKmJ,MAAM4K,GAIf,GAAIC,KACJnC,GAAM,GAAGnG,OAAOqG,QAAQ,SAAUpP,GAC9BqR,EAAWnQ,KAAK,GAAIqE,GAAO+L,OAAOjU,EAAM2C,EAAEnC,GAAImC,EAAElC,KAAMkC,EAAEuP,YAAavP,EAAE8P,KAAM9P,EAAEuI,SAAUvI,EAAEgG,MAAOhG,EAAEuR,YAAavR,EAAEwR,OAAQxR,EAAEiG,MAAOjG,EAAEyR,kBAE1IpU,EAAK+L,QAAQiI,OAGa9H,KAAtB2F,EAAM,GAAGwC,WACLxC,EAAM,GAAGwC,SAASF,OAAS,GAC3BnU,EAAK6J,WAAW,IAChB7J,EAAKmK,aAAa,GAClBnK,EAAKuK,aAAa,IAClBvK,EAAK4K,WAAW,MAGhB5K,EAAK6J,WAAW,GAChB7J,EAAKmK,aAAa,GAClBnK,EAAKuK,aAAa,GAClBvK,EAAK4K,WAAW,QAQhC1C,EAAOzE,UAAU6E,eAAiB,WAG9BjK,KAAKkB,SACDoG,IAAK,8BACLD,KAAM,OACN1C,WAORkF,EAAOzE,UAAU6Q,eAAiB,WAC9B,GAAItU,GAAOC,IAEX5B,MAAKkB,SACDoG,IAAK,mBACLD,KAAM,OACN1C,MAAQuR,OAAQvU,EAAKQ,QACtBhB,KAAK,WACJQ,EAAKwU,OAAO/L,sBACZzI,EAAKwU,OAAOjM,cACZvI,EAAKwU,OAAO9L,kBACZ1I,EAAKwU,OAAO3E,iBAGhBrR,EAAE,kBAAkBiW,QAAQ,KAC5BjW,EAAE,UAAUK,OAAO,KACnBmB,EAAKwU,OAAO9L,mBAOhBR,EAAOzE,UAAU8E,YAAc,WAG3BlK,KAAKkB,SACDoG,IAAK,oBACLD,KAAM,OACN1C,WAORkF,EAAOzE,UAAU+E,eAAiB,WAE9BnK,KAAKkB,SACDoG,IAAK,mBACLD,KAAM,OACN1C,WAORkF,EAAOzE,UAAUiR,WAAa,WAC1B,GAAI1U,GAAOC,IAGXzB,GAAEmT,KAAK1R,KAAK0U,oBAAqB3U,EAAK4U,oBAAoBhD,KAAK,SAAUiD,EAAMzI,GAI3E,MAHApM,GAAKoM,QAAQA,GACbpM,EAAKiQ,aACLjQ,EAAKwQ,sBAAsB,UACpBhS,EAAEmT,KAAKvF,EAASpM,EAAK0O,MAAM,QACnCkD,KAAK,SAAU5O,GACd,GAAIoJ,GAAUpJ,CAGd,IAFAhD,EAAKwQ,sBAAsB,WAEvBpE,EAAQoH,UAAW,CACnB,GAAIhE,GAAYxP,EAAKwM,aAAa1D,KAAKC,MAAMD,KAAKE,SAAWhJ,EAAKwM,aAAatN,QAC/Ec,GAAKoO,UAAUoB,GACfxP,EAAK8U,kBAEJ,CACDtW,EAAE,cAAckB,OAChBlB,EAAE,WAAWmB,OACbnB,EAAE,eAAemB,MACjB,IAAI6P,GAAYxP,EAAKyM,aAAa3D,KAAKC,MAAMD,KAAKE,SAAWhJ,EAAKyM,aAAavN,QAC/Ec,GAAKoO,UAAUoB,GAEnBxP,EAAK0I,mBAC4B,IAA7B1I,EAAKoM,UAAUoH,YACfhV,EAAE,cAAckB,OAChBlB,EAAE,WAAWmB,OACbnB,EAAE,eAAemB,WAK7BuI,EAAOzE,UAAUkR,kBAAoB,WAEjC,MADY1U,MAAKkI,QAAQzF,KAAK,aACjBY,SAAUyR,OAAQ,SAAW,MAAM/F,WAGpD9G,EAAOzE,UAAUmR,iBAAmB,WAChC,GAAI5U,GAAOC,KAEP2O,EAAWpQ,EAAEqQ,WAEbmG,GACAC,SAAUjV,EAAK0L,SAASlL,KACxBuJ,KAAM/J,EAAK+J,OACXM,OAAQrK,EAAKqK,SACbI,OAAQzK,EAAKyK,SACbC,WAAY1K,EAAK0K,aACjBwK,YAAalV,EAAK0L,SAAS/C,QAC3BgD,WAAY3L,EAAK0L,SAASjL,OAM9B,OAJApC,MAAKkB,SAAUmG,KAAM,OAAQC,IAAK,sBAAuB3C,KAAMgS,IAAUxV,KAAK,SAAU2V,GACpFvG,EAASG,QAAQ,GAAK7G,GAAOwL,QAAQ1T,EAAMmV,EAAS3B,QAAS2B,EAASpL,KAAMoL,EAAS9K,OAAQ8K,EAAS1K,OAAQ0K,EAASzK,WAAYyK,EAASC,WAAYD,EAAS1C,KAAM0C,EAASE,UAAWF,EAASvM,MAAOuM,EAAShB,OAAQgB,EAASxB,WAAYwB,EAASxM,MAAOwM,EAASvB,aAE9Q3T,KAAKyL,OAAO,MACLkD,EAASI,WAGpB9G,EAAOzE,UAAU6R,WAAa,WAC1B,GAAItV,GAAOC,MAC6B,IAApCzB,EAAE,WAAW+O,SAAS,WACtB/O,EAAE,WAAWkB,OAGjBlB,EAAE,eAAekB,OAEbM,EAAKwJ,YAAY,GAAG2C,eAAiB,MACrC9N,KAAKkB,SACDoG,IAAK,mBACLD,KAAM,OACN1C,UACDxD,KAAK,WACJQ,EAAK0I,oBAGTzI,KAAKuQ,sBAAsB,SAC3BvQ,KAAK6U,gBAIb5M,EAAOzE,UAAUqR,YAAc,WAEf7U,KAAKkI,QAAQzF,KAAK,aACxBqF,KAAMgN,OAAQ,MAAO/E,QAAS,IAAKjI,KAAMiI,QAAS,KAO5D9H,EAAO8J,KAAO,SAAUwC,EAAQ9O,EAAMjF,EAAMyR,EAAaO,GACrDxS,KAAKuU,OAASA,EAEdvU,KAAKyF,KAAOvF,GAAGU,WAAW6E,GAC1BzF,KAAKQ,KAAON,GAAGU,WAAWJ,GAC1BR,KAAKiS,YAAc/R,GAAGU,WAAWqR,GACjCjS,KAAKwS,KAAOtS,GAAGU,WAAW4R,GAE1BxS,KAAKsV,UAAY,GAGrBrN,EAAO8J,KAAKvO,UAAU+R,UAAY,WAC9B,GAAIxV,GAAOC,IACXA,MAAKsV,UAAYzG,WAAW,WACxB9O,EAAKwU,OAAOtL,aAAalJ,GACzBA,EAAKwU,OAAOrM,QAAQzF,KAAK,mBAAmBhE,SAAS,SAr+B1C,MAy+BnBwJ,EAAO8J,KAAKvO,UAAUgS,SAAW,WAC7BxV,KAAKuU,OAAOrM,QAAQzF,KAAK,mBAAmB/D,YAAY,QACxDsB,KAAKuU,OAAOtL,aAAa,MACzBwM,aAAazV,KAAKsV,YAGtBrN,EAAO8J,KAAKvO,UAAUkS,eAAiB,WACnC,GAAI3V,GAAOC,IACXA,MAAKsV,UAAYzG,WAAW,WACxB9O,EAAKwU,OAAOlL,cAActJ,GAC1BA,EAAKwU,OAAOrM,QAAQzF,KAAK,mBAAmBhE,SAAS,SAn/B1C,MAu/BnBwJ,EAAO8J,KAAKvO,UAAUmS,cAAgB,WAClC3V,KAAKuU,OAAOrM,QAAQzF,KAAK,mBAAmB/D,YAAY,QACxDsB,KAAKuU,OAAOlL,cAAc,MAC1BoM,aAAazV,KAAKsV,YAGtBrN,EAAO8J,KAAKvO,UAAUoS,cAAgB,WAClC,GAAI7V,GAAOC,IACXA,MAAKsV,UAAYzG,WAAW,WACxB9O,EAAKwU,OAAOpL,aAAapJ,GACzBA,EAAKwU,OAAOrM,QAAQzF,KAAK,oBAAoBhE,SAAS,SAjgC3C,MAqgCnBwJ,EAAO8J,KAAKvO,UAAUqS,aAAe,WACjC7V,KAAKuU,OAAOrM,QAAQzF,KAAK,oBAAoB/D,YAAY,QACzDsB,KAAKuU,OAAOpL,aAAa,MACzBsM,aAAazV,KAAKsV,YAGtBrN,EAAO4L,KAAO,SAASU,EAAQhU,EAAIC,EAAMyR,EAAaO,GAClDxS,KAAKuU,OAASA,EAEdvU,KAAKO,GAAKL,GAAGU,WAAWL,GACxBP,KAAKQ,KAAON,GAAGU,WAAWJ,GAC1BR,KAAKiS,YAAc/R,GAAGU,WAAWqR,GACjCjS,KAAKwS,KAAOtS,GAAGU,WAAW4R,IAG9BvK,EAAO+L,OAAS,SAAUO,EAAQhU,EAAIC,EAAMyR,EAAaO,EAAMvH,EAAUvC,EAAOuL,EAAaC,EAAQvL,EAAOwL,GACxGnU,KAAKuU,OAASA,EAEdvU,KAAKO,GAAKL,GAAGU,WAAWL,GACxBP,KAAKQ,KAAON,GAAGU,WAAWJ,GAC1BR,KAAKiS,YAAc/R,GAAGU,WAAWqR,GACjCjS,KAAKwS,KAAOtS,GAAGU,WAAW4R,GAC1BxS,KAAKiL,SAAW/K,GAAGU,WAAWqK,GAC9BjL,KAAK0I,MAAQxI,GAAGU,WAAW8H,GAC3B1I,KAAKiU,YAAc/T,GAAGU,WAAWqT,GACjCjU,KAAKkU,OAAShU,GAAGU,WAAWsT,GAC5BlU,KAAK2I,MAAQzI,GAAGU,WAAW+H,GAC3B3I,KAAKmU,cAAgBjU,GAAGU,WAAWuT,IAGvClM,EAAOsK,cAAgB,SAAUgC,EAAQhU,EAAIC,EAAMyR,EAAaO,EAAMC,GAClEzS,KAAKuU,OAASA,EACdvU,KAAKO,GAAKL,GAAGU,WAAWL,GACxBP,KAAKQ,KAAON,GAAGU,WAAWJ,GAC1BR,KAAKiS,YAAc/R,GAAGU,WAAWqR,GACjCjS,KAAKwS,KAAOtS,GAAGU,WAAW4R,GAC1BxS,KAAKyS,QAAUvS,GAAGU,WAAW6R,IAGjCxK,EAAO0K,YAAc,SAAU4B,EAAQ/T,EAAMiS,EAASI,EAAQC,EAAUN,EAAMtG,GAC1ElM,KAAKuU,OAASA,EACdvU,KAAKQ,KAAON,GAAGU,WAAWJ,GAC1BR,KAAKyS,QAAUvS,GAAGU,WAAW6R,GAC7BzS,KAAK6S,OAAS3S,GAAGU,WAAWiS,GAC5B7S,KAAK8S,SAAW5S,GAAGU,WAAWkS,GAC9B9S,KAAKwS,KAAOtS,GAAGU,WAAW4R,GAC1BxS,KAAKkM,YAAchM,GAAGU,WAAWsL,IAGrCjE,EAAOwL,QAAU,SAASc,EAAQhB,EAASzJ,EAAMM,EAAQI,EAAQC,EAAY0K,EAAY3C,EAAM4C,EAAWzM,EAAOuL,EAAQR,EAAYhL,EAAOiL,GACxI3T,KAAKuU,OAASA,EAEdvU,KAAKuT,QAAUrT,GAAGU,WAAW2S,GAC7BvT,KAAK8J,KAAO5J,GAAGU,WAAWkJ,GAC1B9J,KAAKoK,OAASlK,GAAGU,WAAWwJ,GAC5BpK,KAAKwK,OAAStK,GAAGU,WAAW4J,GAC5BxK,KAAKyK,WAAavK,GAAGU,WAAW6J,GAChCzK,KAAKmV,WAAajV,GAAGU,WAAWuU,GAEhCnV,KAAKwS,KAAOtS,GAAGU,WAAW4R,GAC1BxS,KAAKoV,UAAYlV,GAAGU,WAAWwU,GAC/BpV,KAAK2I,MAAQzI,GAAGU,WAAW+H,GAC3B3I,KAAKkU,OAAShU,GAAGU,WAAWsT,GAC5BlU,KAAK0T,WAAaxT,GAAGU,WAAW8S,GAChC1T,KAAK0I,MAAQxI,GAAGU,WAAW8H,GAC3B1I,KAAK2T,SAAWzT,GAAGU,WAAW+S,IAGlC1L,EAAOgL,OAAS,SAAUsB,EAAQhU,EAAIqK,EAAM4H,EAAMtM,EAAO+L,GACrDjS,KAAKuU,OAASA,EAEdvU,KAAKO,GAAKL,GAAGU,WAAWL,GACxBP,KAAK4K,KAAO1K,GAAGU,WAAWgK,GAC1B5K,KAAKwS,KAAOtS,GAAGU,WAAW4R,GAC1BxS,KAAKkG,MAAQhG,GAAGU,WAAWsF,GAC3BlG,KAAKiS,YAAc/R,GAAGU,WAAWqR,IAGrChK,EAAOgL,OAAOzP,UAAUsS,WAAa,SAAU/S,EAAMqK,GACjD,GAAIrN,GAAOC,IAEXoN,GAAQA,GAAS1G,OAAO0G,KACxB,IAAI3B,GAAS2B,EAAM3B,QAAU2B,EAAMC,UAEnCrN,MAAKuU,OAAO9K,mBAAmB,MAC/B1J,EAAKwU,OAAO9K,mBAAmB1J,GAC/BxB,EAAE,gBAAgBG,YAAY,WAE9B,IAAIqX,GAActK,EAAOuK,aACzBzX,GAAEwX,GAAatX,SAAS,aAG5BwJ,EAAOgL,OAAOzP,UAAUyS,uBAAyB,WAC7C,GAAIlW,GAAOC,KACPkW,EAAMnW,EAAKmG,OAEf,IAAInG,EAAK6K,QAAU7K,EAAKwU,OAAOhL,YAAY,GAAG2C,cAC1C,GAAqB,wBAAjBnM,EAAKmG,QACL9H,KAAKkB,SACDoG,IAAK,6BACLD,KAAM,OACN1C,MACIoT,OAAQ,EACRC,WAAY,EACZC,WAAY,EACZ5Q,KAAM,QACN6Q,YAAa,MACbC,cAAe,mBACftE,YAAa,kBAElB1S,KAAK,WACJhB,EAAE,WAAWkB,OACbM,EAAKwU,OAAO9L,kBAEZlK,EAAE,WAAWuJ,IAAI,UAAW,QAC5BvJ,EAAE,WAAWuJ,IAAI,UAAW,eAG/B,KAAmC,IAA/BoO,EAAIM,OAAO,eAChBpY,KAAKkB,SACDoG,IAAK,6BACLD,KAAM,OACN1C,MACIoT,OAAQ,EACRC,WAAY,EACZC,WAAY,EACZ5Q,KAAM,QACN6Q,YAAa,MACbC,cAAe,mBACftE,YAAa,kBAElB1S,KAAK,WACJhB,EAAE,WAAWkB,OACbM,EAAKwU,OAAO/L,sBACZzI,EAAKwU,OAAO9L,kBAGZlK,EAAE,WAAWuJ,IAAI,UAAW,QAC5BvJ,EAAE,WAAWuJ,IAAI,UAAW,eAG/B,CACD,GAAIsO,GAAa,EACbC,EAAa,GACY,IAAzBH,EAAIM,OAAO,WACXJ,EAAa,EAEbhY,KAAKkB,SACDoG,IAAK,6BACLD,KAAM,OACN1C,MACIoT,OAAQpW,EAAKQ,KACb6V,WAAYA,EACZC,WAAYA,EACZ5Q,KAAM,sBACN6Q,YAAa,MACbC,cAAe,mBACftE,YAAa,kBAElB1S,KAAK,WACJhB,EAAE,WAAWkB,OACbM,EAAKwU,OAAO9L,kBAEZlK,EAAE,WAAWuJ,IAAI,UAAW,QAC5BvJ,EAAE,WAAWuJ,IAAI,UAAW,aAGN,IAA1BoO,EAAIM,OAAO,YACXH,EAAa,EAEbjY,KAAKkB,SACDoG,IAAK,6BACLD,KAAM,OACN1C,MACIoT,OAAQpW,EAAKQ,KACb6V,WAAYA,EACZC,WAAYA,EACZ5Q,KAAM,uBACN6Q,YAAa,MACbC,cAAe,mBACftE,YAAa,kBAElB1S,KAAK,WACJhB,EAAE,WAAWkB,OACbM,EAAKwU,OAAO9L,kBAEZlK,EAAE,WAAWuJ,IAAI,UAAW,QAC5BvJ,EAAE,WAAWuJ,IAAI,UAAW,aAIL,IAA3BoO,EAAIM,OAAO,YACXpY,KAAKkB,SACDoG,IAAK,6BACLD,KAAM,OACN1C,MACIoT,OAAQpW,EAAKQ,KACb6V,WAAYA,EACZC,WAAYA,EACZ5Q,KAAM,sBACN6Q,YAAa,MACbC,cAAe,mBACftE,YAAa,kBAElB1S,KAAK,WACJhB,EAAE,WAAWkB,OACbM,EAAKwU,OAAO9L,kBAEZlK,EAAE,WAAWuJ,IAAI,UAAW,QAC5BvJ,EAAE,WAAWuJ,IAAI,UAAW,aAQzCG;AChuCX,GAAI7J,MAAOA,QAEXA,MAAKqY,MAAS,WACV,GAAIzV,IACA0V,eAAgB,EAChBC,mBAAoB,GACpBC,UAAW,IACXC,eAAgB,EAChBC,iBAAkB,EAClBC,gBAAiB,EACjBC,MACIC,iBAAkB,EAClBC,eACAC,MACIC,OACI,yCACA,yCACA,yCACA,2CAEA,yCACA,yCACA,yCACA,2CAEA,yCACA,yCACA,yCACA,2CAEA,yCACA,yCACA,yCACA,2CAEA,yCACA,yCACA,yCACA,2CAEA,yCACA,yCACA,yCACA,2CAEA,yCACA,yCACA,yCACA,2CAEA,yCACA,yCACA,yCACA,2CAEA,yCACA,yCACA,yCACA,2CAEA,0CACA,0CACA,0CACA,4CAEJC,WACI,wCACA,wCACA,wCACA,wCACA,wCACA,0CAEA,wCACA,wCACA,wCACA,wCACA,wCACA,0CAEA,wCACA,wCACA,wCACA,wCACA,wCACA,0CAEA,wCACA,wCACA,wCACA,wCACA,wCACA,0CAEA,wCACA,wCACA,wCACA,wCACA,wCACA,0CAEA,wCACA,wCACA,wCACA,wCACA,wCACA,0CAEA,wCACA,wCACA,wCACA,wCACA,wCACA,0CAEA,wCACA,wCACA,wCACA,wCACA,wCACA,0CAEA,wCACA,wCACA,wCACA,wCACA,wCACA,0CAEA,yCACA,yCACA,yCACA,yCACA,yCACA,6CAIZC,cAAe,GACfC,cACIC,WAAY,wCAAwCC,MAAM,IAC1DC,OACI,YAAa,YAAa,QAAS,YAAa,OAAQ,QAAS,QAAS,WAC1E,UAAW,aAAc,cAE7BC,oBACK,SAAU,MAAO,QACjB,UAAW,MAAO,aAClB,SAAU,SAAU,SACpB,WAAY,KAAM,SAClB,QAAS,KAAM,cACf,UAAW,MAAO,WAClB,MAAO,MAAO,cACd,YAAa,MAAO,eAEzBC,mBACK,MAAO,QAAS,OAAQ,KAAM,eAC9B,UAAW,QAAS,OAAQ,MAAO,cACnC,SAAU,aAAc,KAAM,OAAQ,WACtC,UAAW,MAAO,cAAe,QAAS,UAC1C,MAAO,OAAQ,QAAS,OAAQ,UAChC,OAAQ,MAAO,OAAQ,WAAY,WACnC,MAAO,WAAY,WAAY,MAAO,UACtC,MAAO,aAAc,QAAS,KAAM,aACpC,MAAO,eAAgB,KAAM,KAAM,SAExCC,aAAc,gBACdC,aAAc,iBAElBC,gBACIC,SACQ,yEACA,2EACA,wEACA,0EACA,mEAEA,yEACA,2EACA,wEACA,kEACA,oEAEA,yEACA,2EACA,wEACA,oEACA,qEAEA,yEACA,2EACA,yEACA,oEACA,uEAEA,yEACA,2EACA,yEACA,sEACA,0EAEA,yEACA,2EACA,yEACA,wEACA,yEAEA,yEACA,2EACA,yEACA,kEACA,mEAEA,yEACA,2EACA,yEACA,kEACA,oEAEA,yEACA,2EACA,0EACA,iEACA,mEAEA,yEACA,2EACA,0EACA,kEACA,oEAEA,yEACA,2EACA,0EACA,sEACA,wEAEA,yEACA,2EACA,0EACA,iEACA,qEAKZvB,EAAQ,SAAUrW,GAClB,KAAMJ,eAAgByW,IAClB,MAAO,IAAIA,EAGf,IAAI1W,GAAOC,IAEXA,MAAKI,QAAU7B,EAAE2C,UAAWF,EAAgBZ,GAE5CJ,KAAKiY,aAAe,KACpBjY,KAAKkY,aAAe,KACpBlY,KAAKmY,qBAAuB,KAE5BnY,KAAKoY,cAAgB,EAErBpY,KAAKqY,UAAY,KACjBrY,KAAKsY,YAAc,KACnBtY,KAAKuY,eAAiB,KACtBvY,KAAKwY,qBAAuBxY,KAAKI,QAAQkX,cAEzCtX,KAAKyY,cAAgB,kCACrBzY,KAAK0Y,mBAAqB,EAC1B1Y,KAAK2Y,WAAapa,EAAE,0BAEpByB,KAAK4Y,eAAiB,EAEtB5Y,KAAK6Y,cAAgB,EACrB7Y,KAAK8Y,eAAiB,EACtB9Y,KAAK+Y,eAEL/Y,KAAKgZ,YAGLza,EAAEmI,QAAQlI,GAAG,OAAQ,WACjBuB,EAAKkZ,eAGT1a,EAAE,wBAAwBC,GAAG,QAAS,WAClCuB,EAAKmZ,mBAGT3a,EAAE,2BAA2BC,GAAG,QAAS,WACrC,GAAI2a,KAOJ,IALIA,EADA5a,EAAE,gBAAgB+O,SAAS,QACdvN,EAAKkY,aAAaxV,KAAK,uBAEvB1C,EAAKkY,aAAaxV,KAAK,uBAGpC0W,EAAWla,OAAS,EAAG,CACvB,GAAIma,GAAYD,EAAWtQ,KAAKC,MAAMD,KAAKE,SAAWoQ,EAAWla,QACjEc,GAAKsZ,UAAUD,MA21B3B,OAn1BA3C,GAAM6C,aAAe,WACjB,MAAI5S,QAAO6S,aAAe7S,OAAO6S,YAAYC,IAClC9S,OAAO6S,YAAYC,MAEtB9S,OAAO6S,aAAe7S,OAAO6S,YAAYE,UAClC/S,OAAO6S,YAAYE,aAEnB,GAAIC,OAAOC,WAK9BlD,EAAMmD,cACFC,WACIxX,MAAO,aACPyX,OAAQ,aACRzL,KAAM,aACNzI,OAAQ,aACRmU,KAAM,eAOdtD,EAAMjT,UAAUwW,SAAW,WACvBzb,EAAE,SAAS8E,SAAUmD,IAAK,UAAYxG,KAAKI,QAAQwW,YAGvDH,EAAMjT,UAAUyW,UAAY,WACxB1b,EAAE,SAAS8E,SAAUmD,IAAK,OAASxG,KAAKI,QAAQwW,YAGpDH,EAAMjT,UAAU0W,WAAa,SAAU1M,GACnCjP,EAAE,SAASkB,OAEXO,KAAKiY,aAAe1Z,EAAEiP,GACtBxN,KAAKiY,aAAavY,QAGtB+W,EAAMjT,UAAU6V,UAAY,SAAUc,GAClC,GAAIxL,GAAWpQ,EAAEqQ,UAEjB,KACI5O,KAAKoa,YAELpa,KAAKmY,qBAAuBxJ,EAC5B3O,KAAKkY,aAAeiC,EAEpBna,KAAKkY,aAAamC,QAAU,WACxB1L,EAASG,WAGb9O,KAAKkY,aAAa1J,OACpB,MAAM9L,GACJiM,EAASG,UAEb,MAAOH,GAASI,WAGpB0H,EAAMjT,UAAU4W,UAAY,WACxB,IAC6B,MAArBpa,KAAKkY,eACLlY,KAAKkY,aAAaoC,QAClBta,KAAKkY,aAAaqC,YAAc,EAChCva,KAAKkY,aAAe,KACpBlY,KAAKmY,qBAAuB,MAElC,MAAMzV,MAGZ+T,EAAMjT,UAAUgX,sBAAwB,WACpC,GAAIC,GAAMlc,EAAE,iDACZ,IAAGkc,EAAIxb,OAAS,EAAG,CACf,GAAI8G,GAAM0U,EAAIpK,KAAK,OAAOnB,QAAQ,gBAAiB,eACnDuL,GAAIpK,KAAK,MAAOtK,KAIxB0Q,EAAMjT,UAAUkX,4BAA8B,WAC1C,MAAOtc,MAAKkB,SAAUoG,IAAK,iCAAkCD,KAAM,SAGvEgR,EAAMjT,UAAUmX,gBAAkB,WAC9B,MAAOvc,MAAKkB,SAAUoG,IAAK,sBAAuBD,KAAM,SAG5DgR,EAAMjT,UAAUoX,cAAgB,WAC5Brc,EAAE,QAAQ8E,SAAUC,KAAM,UAAYtD,KAAKI,QAAQwW,WACnDrY,EAAE,iBAAiB8E,SAAUwX,MAAO,UAAY7a,KAAKI,QAAQwW,YAGjEH,EAAMjT,UAAUsX,aAAe,WAC3Bvc,EAAE,QAAQ8E,SAAUC,KAAM,SAAWtD,KAAKI,QAAQwW,WAClDrY,EAAE,iBAAiB8E,SAAUwX,MAAO,SAAW7a,KAAKI,QAAQwW,YAGhEH,EAAMjT,UAAUuX,QAAU,SAAUC,EAAOC,GACvC,GAAsBC,GAAGC,EAArBxX,EAAIqX,EAAM/b,MAEd,KADKgc,IAAMA,EAAOpS,QACTlF,GACLuX,EAAID,EAAKlS,UAAYpF,EAAI,GAAK,EAC9BwX,EAAOH,EAAMrX,GACbqX,EAAMrX,GAAKqX,EAAME,GACjBF,EAAME,GAAKC,CAEf,OAAOH,IAGXvE,EAAMjT,UAAU4X,SAAW,SAAUlF,EAAKjX,EAAQuY,GAC9C,MAAOtB,GAAMmF,MAAMpc,EAASiX,EAAIjX,OAAS,GAAGqc,KAAK9D,GAAc,MAGnEf,EAAMjT,UAAUwV,UAAY,WACxBhZ,KAAKub,KAAOhd,EAAE2C,UAAWuV,EAAMmD,eAGnCnD,EAAMjT,UAAUgY,SAAW,SAAUC,GACjC,GAAI1b,GAAOC,KACP2O,EAAWpQ,EAAEqQ,WAEbnO,EAAOgb,EAAM1Y,KAAK,QAClB2Y,EAAajb,EAAKxB,OAClB0c,EAAe,EACfC,EAAa,EAiBjB,OAfAH,GAAM/b,OACL,QAAS+F,KACN,GAAIkW,EAAeD,EAEf,WADA/M,GAASG,SAIb+M,UAAWpb,EAAKqb,OAAOH,KAEvBC,GAA0BC,SAC1BJ,EAAMzT,KAAK4T,GAEX7b,EAAKqY,cAAgBvJ,WAAWpJ,EAAM1F,EAAKK,QAAQuW,uBAGhDhI,EAASI,WAGpB0H,EAAMjT,UAAUiL,MAAQ,SAAUC,GAC9B,GAAIC,GAAWpQ,EAAEqQ,UAMjB,OAJAC,YAAW,WACPF,EAASG,WACVJ,GAEIC,EAASI,WAGpB0H,EAAMjT,UAAUuY,uBAAyB,SAAUjF,GAC/C9W,KAAKI,QAAQ0W,iBAAmBA,EAE5BA,EAAmB,IACnBvY,EAAE,yBAAyB8E,SAAUkD,MAAQuQ,EAAmB,IAAO,KAAO,KAE9EvY,EAAE,yBAAyB8E,SAAUkD,MAAO,KAAO,MAI3DkQ,EAAMjT,UAAUwY,sBAAwB,SAAUjF,GAW9C,OAVqC,IAAjC/W,KAAKI,QAAQ2W,iBAAyB/W,KAAKI,QAAQ2W,iBAAmBA,EACtExY,EAAE,wBAAwB8R,KAAK,MAAOjS,KAAKgC,QAAQgP,OAAS,kCAAoC2H,EAAkB,QAAQnY,SAClF,IAAjCoB,KAAKI,QAAQ2W,iBAAyB/W,KAAKI,QAAQ2W,iBAAmBA,GAC7ExY,EAAE,wBAAwBiW,UAAUzF,UAAUxP,KAAK,WAC/ChB,EAAE,wBAAwB8R,KAAK,MAAOjS,KAAKgC,QAAQgP,OAAS,kCAAoC2H,EAAkB,QAAQnY,WAIlIL,EAAE,gBAAgB8R,KAAK,QAAS,eAExB0G,GACJ,IAAK,GACDxY,EAAE,YAAYkC,KAAK,kBACnBlC,EAAE,gBAAgBE,SAAS,eAC3B,MACJ,KAAK,GACDF,EAAE,YAAYkC,KAAK,oBACnBlC,EAAE,gBAAgBE,SAAS,iBAC3B,MACJ,SACIF,EAAE,YAAYkC,KAAK,uBACnBlC,EAAE,gBAAgBE,SAAS,QAInCuB,KAAKI,QAAQ2W,gBAAkBA,GAGnCN,EAAMjT,UAAUyY,oBAAsB,SAAUC,GAC5C,GAAIC,GAAY5d,EAAE,2CACd6d,EAAOF,EAAqBC,EAAUld,MAC1C,IAAImd,EAAO,EAEP,IAAK,GADDC,GAAa9d,EAAE,4CACVoF,EAAI,EAAGA,EAAIyY,GAAQzY,EAAI0Y,EAAWpd,OAAQ0E,IAAK,CACpD,GAAIoC,GAAMxH,EAAE8d,EAAW1Y,IAAI0M,KAAK,OAAOnB,QAAQ,gBAAiB,eAChE3Q,GAAE8d,EAAW1Y,IAAI0M,KAAK,MAAOtK,KAKzC0Q,EAAMjT,UAAUmB,UAAY,WACxBpG,EAAE,cAAc8E,SAAUsB,UAAW,GAAK,IAO9C8R,EAAMjT,UAAU8Y,cAAgB,WAC5Btc,KAAKI,QAAQ4W,KAAKC,iBAAmB,EACrCjX,KAAKI,QAAQ4W,KAAKE,YAAcrO,KAAKsI,MAAMtI,KAAKE,UAAY/I,KAAKI,QAAQ4W,KAAKG,KAAKlY,OAAS,IAE5Fe,KAAKuc,kBAGT9F,EAAMjT,UAAU+Y,eAAiB,WAC7Bhe,EAAE,aAAa8R,KAAK,MAAOrQ,KAAKI,QAAQ4W,KAAKG,KAAKnX,KAAKI,QAAQ4W,KAAKE,aAAalX,KAAKI,QAAQ4W,KAAKC,oBAGvGR,EAAMjT,UAAUgZ,mBAAqB,WACjCxc,KAAKI,QAAQ4W,KAAKC,mBAElBjX,KAAKuc,kBAMT9F,EAAMjT,UAAUyV,WAAa,WACzB,GAAIlZ,GAAOC,KACPT,GAAO,EAEPkI,EAAQ,WAERlI,GAAO,EACPQ,EAAK0c,YAGTzc,MAAKka,WAAW,UAChB3b,EAAE,UAAUE,SAAS,cAEmB,IAApCF,EAAE,uBAAuBU,QACzBe,KAAKqZ,UAAUtZ,EAAKkY,aAAaxV,KAAK,cAAc,IAAIkP,KAAK,WACzD,MAAO5R,GAAKsZ,UAAUtZ,EAAKkY,aAAaxV,KAAK,UAAU,MACxDkP,KAAK,WACJ,MAAO5R,GAAKyb,SAASzb,EAAKkY,aAAaxV,KAAK,mBAC7CkP,KAAK,WACJ,MAAO5R,GAAK0O,MAAM,OACnBkD,KAAK,WACJ,MAAO5R,GAAKyb,SAASzb,EAAKkY,aAAaxV,KAAK,gBAC7CkP,KAAK,WACJ,MAAO5R,GAAK0O,MAAM,OACnBlP,KAAK,WACJhB,EAAE,0CAA0Cme,IAAI,QAASjV,GACpDlI,GACDQ,EAAK0c,cAIbzc,KAAK2c,iBAEL5c,EAAKyb,SAASzb,EAAKkY,aAAaxV,KAAK,iBAAiBkP,KAAK,WACvD,MAAO5R,GAAK0O,MAAM,OACnBkD,KAAK,WACJ,MAAO5R,GAAKyb,SAASzb,EAAKkY,aAAaxV,KAAK,gBAC7CkP,KAAK,WACJ,MAAO5R,GAAK0O,MAAM,OACnBlP,KAAK,WACJhB,EAAE,0CAA0Cme,IAAI,QAASjV,GACpDlI,GACDQ,EAAK0c,cAKjBle,EAAE,0CAA0Cqe,IAAI,QAASnV,IAG7DgP,EAAMjT,UAAUiZ,UAAY,WACxBzc,KAAKoa,YAEL7b,EAAE,UAAUG,YAAY,cAExBsB,KAAKkZ,kBAGTzC,EAAMjT,UAAUmZ,cAAgB,WAC5B,GAAI5c,GAAOC,KAEP+F,EAAMxH,EAAE,SAASwE,KAAK,OACtB8Z,EAAOte,EAAE,UAAYwH,IAAKA,GAC9BxH,GAAE,SAASyH,OAAO6W,GAElBA,EAAKxZ,SACDkD,MAAO,KACPE,OAAQ,KACRD,KAAM,IACNlD,MAAO,IACPyM,QAAS,IAET+M,SAAU,KACVC,SAAU,SAAUza,EAAGC,EAAGC,GAClBD,GAAK,KAAgC,MAAzBhE,EAAEyB,MAAM+C,KAAK,UAAqD,UAAjChD,EAAKkY,aAAa5H,KAAK,QACpEtQ,EAAK4c,gBACLpe,EAAEyB,MAAM+C,KAAK,QAAS,KAG9BxD,KAAM,WACFhB,EAAEyB,MAAMP,OACRlB,EAAEyB,MAAMsE,aAKpBmS,EAAMjT,UAAUwZ,eAAiB,WAC7B,GAAIjd,GAAOC,KAEP0b,EAAa1b,KAAKyY,cAAcxZ,OAChC0c,EAAe,EACfC,EAAa,IAEhB,QAASnW,KACFkW,EAAeD,IACfC,EAAe,GAGnBE,SAAW9b,EAAK0Y,cAAcqD,OAAOH,KAErCC,GAA0BC,SACJD,EAAW3c,OAbrB,KAcR2c,EAAaA,EAAWqB,MAAM,EAAGrB,EAAW3c,SAGhDc,EAAK4Y,WAAW3Q,KAAK4T,GAErB7b,EAAK2Y,mBAAqB7J,WAAWpJ,EAAM1F,EAAKK,QAAQuW,wBAIhEF,EAAMjT,UAAU0Z,cAAgB,WAC5BzH,aAAazV,KAAK0Y,qBAMtBjC,EAAMjT,UAAU0V,eAAiB,WAC7B,GAAInZ,GAAOC,IAEXA,MAAKia,YACLja,KAAK8a,eAEL9a,KAAKmd,8BAA8B5d,KAAK,WACpCQ,EAAKma,WAAW,gBAGpB3b,EAAE,cAAckE,KAAK,MAAMia,MAAME,IAAI,QAAS,KAAM,WAChD7c,EAAKK,QAAQsW,eAAiBnY,EAAEyB,MAAM+C,KAAK,mBAE3ChD,EAAKqd,UAAUrd,EAAKK,QAAQsW,mBAIpCD,EAAMjT,UAAU6Z,cAAgB,aAIhC5G,EAAMjT,UAAU2Z,4BAA8B,WAC1C,GAAIpd,GAAOC,IAEX,OAAOA,MAAK2a,kBAAkBpb,KAAK,SAAU2V,GACzCnV,EAAKud,sBAAsBpI,EAASqI,iBACpCxd,EAAKgc,uBAAuB7G,EAAS4B,kBACrC/W,EAAKic,sBAAsB9G,EAAS6B,iBACpChX,EAAKkc,oBAAoB/G,EAASgH,uBAI1CzF,EAAMjT,UAAU8Z,sBAAwB,SAAUC,GAC9C,GAAIC,GAAmBjf,EAAE,gBACzBif,GAAiBC,QACjBlf,EAAEkF,KAAK8Z,EAAiB,SAAU5Z,EAAGjB,GACjC,GAAIgb,GAAMnf,EAAE,SAAWkC,KAAMiC,EAAElC,KAAMuC,MAAQ4a,kBAAmBjb,EAAEgG,QAClE8U,GAAiBxX,OAAO0X,KAGG,IAA3BH,EAAgBte,SAChBue,EAAiB/d,OACjBlB,EAAE,0BAA0BmB,OAC5BnB,EAAE,wCAAwCkB,SAOlDgX,EAAMjT,UAAUoa,YAAc,WAC1B,MAAO/U,MAAKsI,OAAQsF,EAAM6C,eAAiBtZ,KAAK6Y,eAAkB,IAAM,IAG5EpC,EAAMjT,UAAU4Z,UAAY,SAAU1G,GAClC,GAAI3W,GAAOC,IAEX,QAAQA,KAAKI,QAAQ2W,iBACjB,IAAK,GACD/W,KAAK6d,YACL,MACJ,KAAK,GACD7d,KAAK8d,aACL,MACJ,SACI9d,KAAK+d,YAIbhe,EAAK4E,YACL5E,EAAKma,WAAW,UAChBla,KAAKge,wBAAwBtH,GAAgBnX,KAAK,SAAU2V,GACxDnV,EAAKwY,eAAiB,EACtBxY,EAAKgZ,eACLhZ,EAAK8Y,cAAgBpC,EAAM6C,eAC3BvZ,EAAK+Y,eAAiB/Y,EAAK6d,cAC3B7d,EAAKuY,YAAcpD,EAAS+I,QAC5Ble,EAAKyY,qBAAuBzY,EAAKK,QAAQkX,cACzCvX,EAAKma,WAAW,SAEhBna,EAAKkY,aAAaxV,KAAK,kBAAkBuF,KAAKjI,EAAKK,QAAQkX,eAC3DvX,EAAKme,0BAELne,EAAKsY,UAAY,GAAIja,MAAK+f,WAAYC,WAAY,IAAMC,UAAwC,IAA7Bte,EAAKK,QAAQkX,gBAChFvX,EAAKsY,UAAUhW,QAAQ0a,SAAS,SAAUuB,GACtCve,EAAKkY,aAAaxV,KAAK,kBAAkBuF,KAAKsW,EAAQC,UAAY,OACnEhf,KAAK,SAAU+e,GACdve,EAAKye,SAASF,KACfG,KAAK,SAAUH,GACdve,EAAKye,SAASF,KAGlBve,EAAKia,WACLja,EAAK6a,gBACL7a,EAAKwb,KAAK1B,UAAUxX,MAAMqc,KAAK3e,KAChC0e,KAAK,WACJ1e,EAAKmZ,oBAIbzC,EAAMjT,UAAUwa,wBAA0B,SAAUtH,GAChD,MAAOtY,MAAKkB,SAAUoG,IAAK,aAAc3C,MAAQ2T,eAAgBA,MAGrED,EAAMjT,UAAU0a,wBAA0B,WACtC,GAAIS,GAAW3e,KAAKsY,YAAYsG,UAAU5e,KAAKuY,eAE/B,OAAZoG,GACA3e,KAAKiY,aAAaxV,KAAK,aAAauF,KAAK2W,EAASE,cAClD7e,KAAK8e,qBAEL9e,KAAKuY,kBAELvY,KAAKqY,UAAUhK,QAIvBoI,EAAMjT,UAAUsb,mBAAqB,WACjC,GAAI/e,GAAOC,KAEP2e,EAAW3e,KAAKsY,YAAYsG,UAAU5e,KAAKuY,gBAC3CwG,EAAW/e,KAAKiY,aAAaxV,KAAK,WACtCsc,GAAStB,QAETlf,EAAEkF,KAAKkb,EAASK,QAAS,SAAUrb,EAAGjB,GAClC,GAAIgb,GAAMnf,EAAE,SAAWyJ,KAAMtF,EAAEuc,WAAYlc,MAAQmc,YAAaxc,EAAEyc,SAAUC,cAAeT,EAASU,aACpGN,GAAS/Y,OAAO0X,KAGpBqB,EAASrC,MAAME,IAAI,QAAS,KAAM,WAC9B,GAAIyC,GAAa9gB,EAAEyB,MAAM+C,KAAK,eAC1Boc,EAAW5gB,EAAEyB,MAAM+C,KAAK,YACZ,OAAZoc,GACApf,EAAKuf,iBAAiBD,EAAYF,MAK9C1I,EAAMjT,UAAU8b,iBAAmB,SAAUD,EAAYF,GACrDnf,KAAKuf,aAAaJ,GAClBnf,KAAK+Y,YAAYnV,MAAOyb,WAAYA,EAAYF,SAAUA,IAC1Dnf,KAAKke,0BACLle,KAAKub,KAAK1B,UAAUC,OAAO4E,KAAK3e,OAGpC0W,EAAMjT,UAAU+b,aAAe,SAAUJ,GACrC,GAAI5E,GAAcva,KAAK4d,cACnB4B,EAAajF,EAAcva,KAAK8Y,cACpC9Y,MAAK8Y,eAAiByB,CAEtB,IAAIxX,IAAS0c,SAAYzf,KAAKsY,YAAYmH,SAAUN,SAAYA,EAAUK,WAAcA,EACxF,OAAOphB,MAAKkB,SAAUoG,IAAK,qBAAsBD,KAAM,OAAQ1C,KAAMA,KAGzE0T,EAAMjT,UAAUgb,SAAW,SAAUF,GACjC,GAAIve,GAAOC,IAEXA,MAAKub,KAAK1B,UAAUxL,KAAKqQ,KAAK3e,EAC9B,IAAI6e,MAAec,OAAO1f,KAAKsY,YAAYsG,WACvCe,KAAgBD,OAAOd,EAAUgB,OAAO5f,KAAK+Y,YAAY9Z,OAAQ2f,EAAU3f,OAASe,KAAK+Y,YAAY9Z,QAEzGV,GAAEkF,KAAKkc,EAAY,SAAUhc,EAAGjB,GAC5B3C,EAAKgZ,YAAYnV,MAAOyb,WAAY3c,EAAE2c,WAAYF,SAAU,MAGhEnf,KAAKka,WAAW,gBAChBla,KAAK6f,kBAAkBvB,EAAQwB,QAAU,KAAMvgB,KAAK,SAAUwD,GAC1DhD,EAAKya,wBAELza,EAAKwb,KAAK1B,UAAUjU,OAAO8Y,KAAK3e,EAAMgD,KACvC0b,KAAK,WACJ1e,EAAKmZ,oBAIbzC,EAAMjT,UAAUqc,kBAAoB,SAAUE,GAC1C,GAAIhd,IACAid,YAAahgB,KAAKsY,YAAY0H,YAC9BP,SAAUzf,KAAKsY,YAAYmH,SAC3BM,KAAMA,EACN1b,QAASrE,KAAK+Y,YAGlB,OAAO3a,MAAKkB,SAAUoG,IAAK,aAAcD,KAAM,OAAQ1C,KAAMA,KAMjE0T,EAAMjT,UAAUqa,WAAa,WAGzBtf,EAAE,gBAAgBG,YAAY,QAAQA,YAAY,QAClDH,EAAE,8BAA8B+F,SAEhCtE,KAAKub,KAAOhd,EAAE2C,QAAO,KAAUuV,EAAMmD,cACjCC,WACIxX,MAAOrC,KAAKigB,WACZ5R,KAAMrO,KAAKkgB,UACXta,OAAQ5F,KAAKmgB,gBAKzB1J,EAAMjT,UAAUyc,WAAa,WACzBjgB,KAAKogB,8BAGT3J,EAAMjT,UAAU0c,UAAY,aAI5BzJ,EAAMjT,UAAU2c,YAAc,SAAUva,GACpC5F,KAAKka,WAAW,uBAEhBla,KAAKiY,aAAaxV,KAAK,UAAUhC,KAAKmF,EAAOiV,OAC7C7a,KAAKiY,aAAaxV,KAAK,UAAUhC,KAAKmF,EAAOya,OAC7CrgB,KAAKiY,aAAaxV,KAAK,YAAYhC,KAAKmF,EAAO0a,SAE/CtgB,KAAKiY,aAAaxV,KAAK,eAAehD,MAEtC,IAAI8gB,MACAze,IAGAye,GAD0B,IAA1B3a,EAAO8Q,eACI1W,KAAKI,QAAQmX,aAAaI,kBAE1B3X,KAAKI,QAAQmX,aAAaK,iBAGzC9V,KAAa4d,OAAOa,EAAS1X,KAAKC,MAAMD,KAAKE,SAAWwX,EAASthB,SAEjE,IAAIuhB,GAAcxgB,KAAKsY,YAAYsG,UAAU3f,OAAS2G,EAAOiV,KAC7D2F,GAAc3X,KAAK4X,IAAI3e,EAAQ7C,OAAQuhB,EAGvC,KAAK,GADDE,MACK/c,EAAI,EAAGA,EAAI7B,EAAQ7C,SAAU0E,EAClC+c,EAAQ9c,KAAKD,EAEjB3D,MAAK+a,QAAQ2F,EAEb,KAAK,GAAI/c,GAAI,EAAGA,EAAI6c,EAAa7c,IAAK,CAGlC,IAAK,GAFDgd,GAAO7e,EAAQ4e,EAAQ/c,IAElBid,EAAI,EAAGA,EAAID,EAAK1hB,OAAQ2hB,IAC7BD,EAAOA,EAAKzR,QAAQyR,EAAKC,GAAI,IAGjC9e,GAAQ4e,EAAQ/c,IAAMgd,EAS1B,GANApiB,EAAEkF,KAAK3B,EAAS,SAAU6B,EAAGjB,GAChBnE,EAAE,QAAUkC,KAAMiC,IACxBme,aAAa,kCAIhBjb,EAAOkb,KAAM,CACbviB,EAAE,gBAAgBE,SAAS,QAC3BuB,KAAK+gB,yBAAyB/gB,KAAKI,QAAQmX,aAAaM,aAAa,EAErE,IAAImJ,GAAehhB,KAAKiY,aAAaxV,KAAK,SAC1ClE,GAAEyiB,EAAanY,KAAKC,MAAMD,KAAKE,SAAWiY,EAAa/hB,UAAUS,WAC9D,CACHnB,EAAE,gBAAgBE,SAAS,QAC3BuB,KAAK+gB,yBAAyB/gB,KAAKI,QAAQmX,aAAaO,aAAa,EAErE,IAAImJ,GAAejhB,KAAKiY,aAAaxV,KAAK,SAC1ClE,GAAE0iB,EAAapY,KAAKC,MAAMD,KAAKE,SAAWkY,EAAahiB,UAAUS,SAIzE+W,EAAMjT,UAAU4c,2BAA6B,WACzC,GAAIrgB,GAAOC,IACXyV,cAAazV,KAAK4Y,eAElB,IAAIsI,GAAW3iB,EAAE,UACjBA,GAAEkF,KAAKyd,EAAU,SAAUvd,EAAGjB,GAC1B,GAAIye,GAAQphB,EAAKK,QAAQmX,aAAaC,WAAWyF,MAAM,GACnDmE,EAAOD,EAAMtY,KAAKC,MAAMD,KAAKE,SAAWoY,EAAMliB,QAClDV,GAAEmE,GAAGjC,KAAK2gB,KAGdrhB,EAAK6Y,eAAiB/J,WAAW,WAC7B9O,EAAKqgB,8BACN,MAGP3J,EAAMjT,UAAUud,yBAA2B,SAAUJ,EAAMU,GACvD,GAAIthB,GAAOC,IACXyV,cAAazV,KAAK4Y,eAElB,IAAI0I,KACQ,OAARX,IACAA,EAAO3gB,KAAKI,QAAQmX,aAAaG,MAAM7O,KAAKC,MAAMD,KAAKE,SAAW/I,KAAKI,QAAQmX,aAAaG,MAAMzY,UAGtG0hB,EAAO3gB,KAAKob,SAASuF,EAAM,IAEf,MAARU,IACAA,GAAO,EAGX,IAAIH,GAAW3iB,EAAE,UAEjBA,GAAEkF,KAAKyd,EAAU,SAAUK,EAAO7e,GAC9B,GAAIye,GAAQphB,EAAKK,QAAQmX,aAAaC,WAAWyF,MAAM,EACvDuE,KAAMzhB,EAAKgb,QAAQoG,GACnBG,EAAQC,IAAWE,OAAO,EAAOH,QAASE,OAG9CxhB,KAAK4Y,eAAiB/J,WAAW,QAAS6S,KACtCnjB,EAAEkF,KAAKyd,EAAU,SAAUK,EAAO7e,GAC9B,GAAIif,GAAML,EAAQC,EAClB,KAAkB,IAAdI,EAAIF,MAAiB,CACrB,GAAIL,GAAOO,EAAIL,QAAQM,KACvBrjB,GAAEmE,GAAGjC,KAAK2gB,GACNA,IAAST,EAAKY,KACdI,EAAIF,OAAQ,MAKbljB,EAAE4F,KAAKmd,EAAS,SAAU5e,EAAGiB,GACpC,OAAmB,IAAZjB,EAAE+e,QAGJxiB,OAAS,EACdc,EAAK6Y,eAAiB/J,WAAW6S,EAAY,MAC9B,IAATL,IACNthB,EAAK6Y,eAAiB/J,WAAW,WAC7B9O,EAAKghB,4BACN,OAGR,IAEkBO,GAAQJ,EAASjiB,OAAS,IAMnDwX,EAAMjT,UAAUsa,YAAc,WAC1B9d,KAAKub,KAAOhd,EAAE2C,QAAO,KAAUuV,EAAMmD,cACjCC,WACIxX,MAAOrC,KAAK6hB,YACZxT,KAAMrO,KAAK8hB,WACXlc,OAAQ5F,KAAK+hB,iBAKzBtL,EAAMjT,UAAUse,WAAa,aAI7BrL,EAAMjT,UAAUqe,YAAc,WAC1BtjB,EAAE,oBAAoBuJ,IAAI,UAAW,KACrCvJ,EAAEA,EAAE,oBAAoB,IAAI8R,KAAK,MAAOjS,KAAKgC,QAAQgP,OAASpP,KAAKI,QAAQ2X,eAAeC,OAAO,GAAG,KAGxGvB,EAAMjT,UAAUue,aAAe,SAAUnc,GAGrC5F,KAAKka,WAAW,yBAEhBla,KAAKiY,aAAaxV,KAAK,yBAAyBhD,OAChDO,KAAKiY,aAAaxV,KAAK,UAAUhC,KAAKmF,EAAOiV,OAC7C7a,KAAKiY,aAAaxV,KAAK,UAAUhC,KAAKmF,EAAOya,OAC7CrgB,KAAKiY,aAAaxV,KAAK,YAAYhC,KAAKmF,EAAO0a,SAE/CtgB,KAAKiY,aAAaxV,KAAK,eAAehD,MAEtC,IAAIuY,MAAY0H,OAAO1f,KAAKI,QAAQ2X,eAAeC,OAAOnP,KAAKC,MAAMD,KAAKE,SAAW/I,KAAKI,QAAQ2X,eAAeC,OAAO/Y,UAEpH+iB,EAAQzjB,EAAE,mBAEdA,GAAEyjB,EAAM,IAAI3R,KAAK,MAAOjS,KAAKgC,QAAQgP,OAAS4I,EAAO,IACrDzZ,EAAEyjB,EAAM,IAAI3R,KAAK,MAAOjS,KAAKgC,QAAQgP,OAAS4I,EAAO,IACrDzZ,EAAEyjB,EAAM,IAAI3R,KAAK,MAAOjS,KAAKgC,QAAQgP,OAAS4I,EAAO,IACrDzZ,EAAEyjB,EAAM,IAAI3R,KAAK,MAAOjS,KAAKgC,QAAQgP,OAAS4I,EAAO,IACrDzZ,EAAEyjB,EAAM,IAAI3R,KAAK,MAAOjS,KAAKgC,QAAQgP,OAAS4I,EAAO,GAErD,IAAIiK,GAAQpZ,KAAKC,MAAMlD,EAAOiV,MAAQjV,EAAOya,MAAQrI,EAAO/Y,OAuB5D,IApBIgjB,EAAQ,IACRA,IACA1jB,EAAEyjB,EAAM,IAAI3e,SAAU0M,QAAS,GAAK,KAAMhB,UAAU4C,KAAK,WAErD,KADAsQ,EACY,EACR,MAAO1jB,GAAEyjB,EAAM,IAAI3e,SAAU0M,QAAS,GAAK,KAAMhB,YAEtD4C,KAAK,WAEJ,KADAsQ,EACY,EACR,MAAO1jB,GAAEyjB,EAAM,IAAI3e,SAAU0M,QAAS,GAAK,KAAMhB,YAEtD4C,KAAK,WAEJ,KADAsQ,EACY,EACR,MAAO1jB,GAAEyjB,EAAM,IAAI3e,SAAU0M,QAAS,GAAK,KAAMhB,aAKzDnJ,EAAOkb,KAAM,CACb9gB,KAAKiY,aAAaxV,KAAK,YAAY/C,OACnCnB,EAAE,gBAAgBE,SAAS,QAC3BuB,KAAK+gB,yBAAyB/gB,KAAKI,QAAQmX,aAAaM,aAAa,EAErE,IAAImJ,GAAehhB,KAAKiY,aAAaxV,KAAK,SAC1ClE,GAAEyiB,EAAanY,KAAKC,MAAMD,KAAKE,SAAWiY,EAAa/hB,UAAUS,WAC9D,CACHM,KAAKiY,aAAaxV,KAAK,eAAe/C,OACtCnB,EAAE,gBAAgBE,SAAS,QAC3BuB,KAAK+gB,yBAAyB/gB,KAAKI,QAAQmX,aAAaO,aAAa,EAErE,IAAImJ,GAAejhB,KAAKiY,aAAaxV,KAAK,SAC1ClE,GAAE0iB,EAAapY,KAAKC,MAAMD,KAAKE,SAAWkY,EAAahiB,UAAUS,SAOzE+W,EAAMjT,UAAUua,UAAY,WACxB/d,KAAKub,KAAOhd,EAAE2C,QAAO,KAAUuV,EAAMmD,cACjCC,WACIxX,MAAOrC,KAAKkiB,UACZ7T,KAAMrO,KAAKmiB,SACXvc,OAAQ5F,KAAKoiB,eAKzB3L,EAAMjT,UAAU0e,UAAY,WAGxB,OAAQliB,KAAKI,QAAQsW,gBACjB,IAAK,GACD1W,KAAKI,QAAQ4W,KAAKE,eAAiBwI,OAAO1f,KAAKI,QAAQ4W,KAAKG,KAAKC,KAAKvO,KAAKC,MAAMD,KAAKE,SAAW/I,KAAKI,QAAQ4W,KAAKG,KAAKC,KAAKnY,SAC7H,MACJ,SACIe,KAAKI,QAAQ4W,KAAKE,eAAiBwI,OAAO1f,KAAKI,QAAQ4W,KAAKG,KAAKE,SAASxO,KAAKC,MAAMD,KAAKE,SAAW/I,KAAKI,QAAQ4W,KAAKG,KAAKE,SAASpY,UAI7IV,EAAE,0BAA0Bkf,QAC5Blf,EAAEkF,KAAKzD,KAAKI,QAAQ4W,KAAKE,YAAa,SAAUvT,EAAGjB,GAC/C,GAAIoD,GAAOvH,EAAE,UAAYwH,IAAK,uCAAyCrD,EAAGoF,KAAOua,QAAc,GAAL1e,EAAS,QAAU,SAC7GpF,GAAE,0BAA0ByH,OAAOF,MAI3C2Q,EAAMjT,UAAU2e,SAAW,aAI3B1L,EAAMjT,UAAU4e,WAAa,SAAUxc,GAGnC5F,KAAKka,WAAW,eAEhBla,KAAKiY,aAAaxV,KAAK,yBAAyBhD,OAChDO,KAAKiY,aAAaxV,KAAK,UAAUhC,KAAKmF,EAAOiV,OAC7C7a,KAAKiY,aAAaxV,KAAK,UAAUhC,KAAKmF,EAAOya,OAC7CrgB,KAAKiY,aAAaxV,KAAK,YAAYhC,KAAKmF,EAAO0a,SAE/CtgB,KAAKiY,aAAaxV,KAAK,eAAehD,MAEtC,IAAIwiB,GAAQpZ,KAAKC,MAAMlD,EAAOiV,MAAQjV,EAAOya,MAAQrgB,KAAKI,QAAQ4W,KAAKE,YAAYjY,OAWnF,IAVC,QAASqjB,GAAWL,GACJ,GAATA,GAGJ1jB,EAAEA,EAAE,qCAAqC,IAAIK,OAAO,IAAM,WACtD0jB,IAAaL,MAEnBA,GAGErc,EAAOkb,KAAM,CACb9gB,KAAKiY,aAAaxV,KAAK,YAAY/C,OACnCnB,EAAE,gBAAgBE,SAAS,QAC3BuB,KAAK+gB,yBAAyB/gB,KAAKI,QAAQmX,aAAaM,aAAa,EAErE,IAAImJ,GAAehhB,KAAKiY,aAAaxV,KAAK,SAC1ClE,GAAEyiB,EAAanY,KAAKC,MAAMD,KAAKE,SAAWiY,EAAa/hB,UAAUS,WAC9D,CACHM,KAAKiY,aAAaxV,KAAK,eAAe/C,OACtCnB,EAAE,gBAAgBE,SAAS,QAC3BuB,KAAK+gB,yBAAyB/gB,KAAKI,QAAQmX,aAAaO,aAAa,EAErE,IAAImJ,GAAejhB,KAAKiY,aAAaxV,KAAK,SAC1ClE,GAAE0iB,EAAapY,KAAKC,MAAMD,KAAKE,SAAWkY,EAAahiB,UAAUS,SAIlE+W;ACpoCX,GAAIrY,MAAOA,QAEXA,MAAKmkB,MAAS,WACV,GAAIvhB,IACAsW,cAAe,GACfkL,QAAQ,GAGRD,EAAQ,SAAUniB,GAGlBJ,KAAKI,QAAU7B,EAAE2C,UAAWF,EAAgBZ,GAE5CJ,KAAKyiB,eAAiBlkB,EAAE,kBAAkBmkB,QAE1C1iB,KAAK2iB,mBAEL,KACIjW,KAAK9I,MAAM,kBAAmB,EAAG,WAAY,MAAO,IACpD8I,KAAK9I,MAAM,kBAAmB,EAAG,WAAY,MAAO,IACpD8I,KAAK9I,MAAM,cAAe,WAAY,UACxC,MAAMlB,KA+0CZ,OA30CA6f,GAAMjJ,aAAe,WACjB,MAAI5S,QAAO6S,aAAe7S,OAAO6S,YAAYC,IAClC9S,OAAO6S,YAAYC,MAEtB9S,OAAO6S,aAAe7S,OAAO6S,YAAYE,UAClC/S,OAAO6S,YAAYE,aAEnB,GAAIC,OAAOC,WAK9B4I,EAAM/e,UAAUiL,MAAQ,SAAUC,GAC9B,GAAIC,GAAWpQ,EAAEqQ,UAMjB,OAJAC,YAAW,WACPF,EAASG,WACVJ,GAEIC,EAASI,WAGpBwT,EAAM/e,UAAUmJ,MAAQ,SAASlH,EAAMmH,EAAO5C,EAAOjH,GACjD3E,KAAKuO,MAAM,QAASlH,EAAMmH,EAAO5C,EAAOjH,EACxC,KACI2J,KAAK9I,MAAM,cAAe,QAAS6B,EAAMmH,EAAO5C,IAClD,MAAMtH,MAGZ6f,EAAM/e,UAAUof,WAAa,SAAShW,EAAO5C,GACzChK,KAAK2M,MAAM,QAASC,EAAO5C,EAA6B,WAAtBhK,KAAKI,QAAQyiB,KAAoB,EAAI,IAG3EN,EAAM/e,UAAUsf,gBAAkB,SAAUlW,EAAO5C,GAC/ChK,KAAK2M,MAAM,aAAcC,EAAO5C,EAA6B,WAAtBhK,KAAKI,QAAQyiB,KAAoB,EAAI,IAGhFN,EAAM/e,UAAUuf,YAAc,SAAUnW,GACpC5M,KAAK2M,MAAM,SAAUC,EAAO,KAA4B,WAAtB5M,KAAKI,QAAQyiB,KAAoB,EAAI,IAG3EN,EAAM/e,UAAUwf,iBAAmB,SAAUpW,GACzC5M,KAAK2M,MAAM,eAAgBC,EAAO,KAA4B,WAAtB5M,KAAKI,QAAQyiB,KAAoB,EAAI,IAGjFN,EAAM/e,UAAUyf,WAAa,SAAUrW,GACnC5M,KAAK2M,MAAM,QAASC,EAAO,KAA4B,WAAtB5M,KAAKI,QAAQyiB,KAAoB,EAAI,IAG1EN,EAAM/e,UAAU0f,aAAe,WAG3B3kB,EAAE,iBAAiBuJ,IAAI,OAFT,UAGd,IAAInE,GAAI,EACR3D,MAAKmjB,uBAAyBpiB,YAAY,WACtC,GAAIqiB,GAAMzf,EAAI,CACVyf,GAAM,KACNA,EAAM,GAGV7kB,EAAE,QAAU6kB,GAAKtb,IAAI,OAVX,WAWVvJ,EAAE,QAAUoF,GAAGmE,IAAI,OAVR,UAWXnE,EACQ,IACJA,EAAI,KAET,MAGP4e,EAAM/e,UAAU6f,SAAW,WACvB,GAAItjB,GAAOC,KACP2O,EAAWpQ,EAAEqQ,UASjB,OAPArQ,GAAE,aAAauJ,IAAI,UAAW,KAAKpI,OAEnCK,EAAKmjB,eACLljB,KAAKyO,MAAM,KAAMkD,KAAK,WAClBhD,EAASG,YAGNH,EAASI,WAGpBwT,EAAM/e,UAAU8f,SAAW,WACvB,GAAIvjB,GAAOC,KACP2O,EAAWpQ,EAAEqQ,UAYjB,OAVArQ,GAAE,aAAauJ,IAAI,UAAW,KAE9B9H,KAAKyO,MAAM,KAAMkD,KAAK,WAClB4R,cAAcxjB,EAAKojB,wBAEnB5kB,EAAE,aAAakB,OAEfkP,EAASG,YAGNH,EAASI,WAGpBwT,EAAM/e,UAAU0W,WAAa,SAAUpK,EAAS0T,GAC5C,GAAI7U,GAAWpQ,EAAEqQ,UAYjB,OAVArQ,GAAE,SAASkB,OACXlB,EAAEuR,GAASpQ,OAEXnB,EAAE,UAAUG,kBAEW,KAAZ,GACPH,EAAE,UAAUE,SAAS+kB,GAGzB7U,EAASG,UACFH,EAASI,WAGpBwT,EAAM/e,UAAUmf,kBAAoB,WAChC,GAAIc,IACA,iBACA,eACA,aACA,mBACA,gBACA,iBACA,oBACA,oBACA,iBACA,oBACA,oBACA,oBACA,qCACA,mBACA,oBACA,iBACA,aACA,aACA,aAGJ/S,GAAEjN,KAAKggB,EAAQ,SAASC,GACpBnlB,EAAE,WAAW8R,KAAK,MAAO,uCAAyCqT,MAS1EnB,EAAM/e,UAAUmgB,WAAa,WACzB,GAAI5jB,GAAOC,IAEXzB,GAAE,oBAAoBK,SACtBL,EAAE,kBAAkBK,SACpBL,EAAE,oBAAoBK,SAEtBoB,KAAKka,WAAW,SAAU,SAASvI,KAAK,WAEpC,MADApT,GAAE,UAAU6E,WAAW3D,OAChBlB,EAAEmT,KAAK3R,EAAK6jB,qBAAsB7jB,EAAKsjB,cAC/C1R,KAAK,SAASkS,GACb9jB,EAAK+jB,eAAeD,MAI5BtB,EAAM/e,UAAUogB,mBAAqB,WACjC,GAAIjV,GAAWpQ,EAAEqQ,UAoBjB,OAnBI5O,MAAKI,QAAQoiB,OACbpkB,KAAKkB,SAAUoG,IAAK,iBAAkBiM,KAAK,SAAU5O,GACjD4L,EAASG,QAAQ/L,EAAK8gB,UAG1B7jB,KAAKyO,MAAM,KAAMkD,KAAK,WAClBhD,EAASG,UACHnI,SAAU,QAASlB,KAAM,UAAWse,WAAW,IAC/Cpd,SAAU,QAASlB,KAAM,UAAWse,WAAW,IAC/Cpd,SAAU,QAASlB,KAAM,YAAase,WAAW,IACjDpd,SAAU,QAASlB,KAAM,WAAYse,WAAW,IAChDpd,SAAU,QAASlB,KAAM,cAAese,WAAW,IACnDpd,SAAU,QAASlB,KAAM,WAAYse,WAAW,IAChDpd,SAAU,QAASlB,KAAM,iBAAkBse,WAAW,IACtDpd,SAAU,QAASlB,KAAM,eAAgBse,WAAW,OAK3DpV,EAASI,WAGpBwT,EAAM/e,UAAUsgB,eAAiB,SAASD,KAQ1CtB,EAAM/e,UAAUwgB,uBAAyB,SAAUC,EAAUC,GACzD,GAAInkB,GAAOC,IAEXzB,GAAE,cAAcmB,OAChBM,KAAKka,WAAW,gBAAiB+J,GAAUtS,KAAK,WAC5CpT,EAAE,iBAAiBme,MAAME,IAAI,mBAAoB,MAAO,SAAUla,GAC9D,GAAInC,GAAKhC,EAAEyB,MAAMmkB,KAAK,KAUtB,OARW,aAAP5jB,EACAR,EAAK4jB,aACS,cAAPpjB,GACPR,EAAKqkB,UAAUH,EAAUC,GAG7BxhB,EAAE2hB,kBACF3hB,EAAEC,kBACK,OAQnB4f,EAAM/e,UAAU8gB,YAAc,WAC1B,MAAOzb,MAAKsI,OAAQoR,EAAMjJ,eAAiBtZ,KAAK6Y,eAAkB,IAAM,IAG5E0J,EAAM/e,UAAU4gB,UAAY,SAAUH,EAAUC,GAC5C,GAAInkB,GAAOC,IAEe,YAAtBA,KAAKI,QAAQyiB,MACbtkB,EAAE,oBAAoBkB,OACtBlB,EAAE,oBAAoB6E,WAAW3D,SAEjClB,EAAE,oBAAoBkB,OACtBlB,EAAE,oBAAoBiW,UACtBjW,EAAE,kBAAkBiW,UACpBjW,EAAE,oBAAoBiW,WAG1BjW,EAAE,mBAAmBkB,OACrBlB,EAAE,kBAAkBkB,OAEpBO,KAAKka,WAAW,QAAS,QAAU+J,GAAUtS,KAAK,WAC9C,MAAOpT,GAAEmT,KAAK3R,EAAKwkB,eAAeN,EAAUC,GAAWnkB,EAAKsjB,cAC7D1R,KAAK,SAAU6S,GACd,MAAOjmB,GAAEmT,KAAK8S,EAAQzkB,EAAKujB,cAC5B3R,KAAK,SAAU6S,GACdzkB,EAAKwY,eAAiB,EACtBxY,EAAKif,WACLjf,EAAK0kB,YAAcD,EACnBzkB,EAAK8Y,cAAgB0J,EAAMjJ,eAC3BvZ,EAAKyf,WAAazf,EAAKukB,cAEG,WAAtBvkB,EAAKK,QAAQyiB,MACbtkB,EAAE,oBAAoBmB,OACtBnB,EAAE,oBAAoB6E,WAAW1D,QAEjCnB,EAAE,oBAAoBmB,OAG1BnB,EAAE,mBAAmBmB,OACrBnB,EAAE,kBAAkBkB,OAEpBlB,EAAE,8BAA8Bkf,QAEhClf,EAAEkF,KAAK+gB,EAAO5F,UAAW,SAAUjb,EAAGjB,GAClCnE,EAAE,8BAA8ByH,OAAOzH,EAAE,cAG7CA,EAAE,6BAA6ByJ,KAAK,IACpCzJ,EAAE,kBAAkB+F,SACpB/F,EAAE,6BAA6BmmB,OAAO3kB,EAAK0iB,eAAeC,SAE1D3iB,EAAK4kB,0BAEL5kB,EAAKsY,UAAY,GAAIja,MAAK+f,WAAYC,WAAY,IAAMC,UAAwC,IAA7Bte,EAAKK,QAAQkX,gBAChFvX,EAAKsY,UAAUhW,QAAQ0a,SAAS,SAAUuB,GACtC/f,EAAE,qBAAqBuJ,IAAI,oBAA2C,WAAtB/H,EAAKK,QAAQyiB,KAAoB,WAAa,YAC9FtkB,EAAE,6BAA6ByJ,KAAKsW,EAAQC,UAAY,OACzDhf,KAAK,SAAU+e,GACdve,EAAK6kB,SAAStG,KACfG,KAAK,SAAUH,GACdve,EAAK6kB,SAAStG,KAGlBve,EAAK6iB,WAAW,cAIxBL,EAAM/e,UAAU+gB,eAAiB,SAAUN,EAAUC,GACjD,GAAInkB,GAAOC,KAEP2O,EAAWpQ,EAAEqQ,UAuCjB,OArCI5O,MAAKI,QAAQoiB,OACbpkB,KAAKkB,SAAUoG,IAAK,qBAAsB3C,MAAQ4C,IAAKue,KAAcvS,KAAK,SAAS5O,GAC/E4L,EAASG,QAAQ/L,EAAK8hB,SACvBpG,KAAK,WACJ1e,EAAK4jB,eAGT3jB,KAAKyO,MAAM,KAAMkD,KAAK,WAClB,OAAQsS,GACR,IAAK,UACDtV,EAASG,QAAQyT,EAAMuC,QACvB,MACJ,KAAK,UACDnW,EAASG,QAAQyT,EAAMwC,QACvB,MACJ,KAAK,YACDpW,EAASG,QAAQyT,EAAMyC,UACvB,MACJ,KAAK,cACDrW,EAASG,QAAQyT,EAAM0C,YACvB,MACJ,KAAK,iBACDtW,EAASG,QAAQyT,EAAM2C,eACvB,MACJ,KAAK,WACDvW,EAASG,QAAQyT,EAAM4C,SACvB,MACJ,KAAK,WACDxW,EAASG,QAAQyT,EAAM6C,SACvB,MACJ,KAAK,eACDzW,EAASG,QAAQyT,EAAM8C,iBAM5B1W,EAASI,WAGpBwT,EAAM/e,UAAU8hB,sBAAwB,WACpC/mB,EAAE,+DAA+DE,SAAS,cAG9E8jB,EAAM/e,UAAUmhB,wBAA0B,WACtC,GAAI5kB,GAAOC,KAEP2e,EAAW3e,KAAKykB,YAAY7F,UAAU5e,KAAKuY,gBAC3CgN,EAAQhnB,EAAE,QAId,IAHAA,EAAE,eAAekB,OACjBlB,EAAE,cAAckB,OAEA,MAAZkf,EAAkB,CAIlB,OAHApgB,EAAE,sBAAsByJ,KAAK2W,EAASE,cACtC7e,KAAKslB,wBAEGtlB,KAAKykB,YAAYhf,MACrB,IAAK,UACD,GAAI+f,GAAWD,EAAM9iB,KAAK,WAC1B+iB,GAAS/H,OAET,IAAIgI,GAAOlnB,EAAEogB,EAASK,QAAQ,GAAGC,WACjCwG,GAAK1iB,KAAK,WAAY4b,EAASK,QAAQ,GAAGG,UAC1CsG,EAAK1iB,KAAK,aAAc4b,EAASU,YACjCmG,EAASxf,OAAOyf,GAEhBD,EAASxf,OAAO,QAEhB,IAAI0f,GAAOnnB,EAAEogB,EAASK,QAAQ,GAAGC,WACjCyG,GAAK3iB,KAAK,WAAY4b,EAASK,QAAQ,GAAGG,UAC1CuG,EAAK3iB,KAAK,aAAc4b,EAASU,YACjCmG,EAASxf,OAAO0f,GAEhBF,EAAS9I,MAAME,IAAI,QAAS,MAAO,SAAUla,GACzC,GAAIyc,GAAW5gB,EAAEyB,MAAM+C,KAAK,YACxBsc,EAAa9gB,EAAEyB,MAAM+C,KAAK,aAU9B,OARAhD,GAAK4lB,cAAcxG,GAEnBpf,EAAKif,QAAQpb,MAAOyb,WAAYA,EAAYF,SAAUA,IAEtDpf,EAAK4kB,0BAELjiB,EAAE2hB,kBACF3hB,EAAEC,kBACK,GAEX,MACJ,KAAK,UACD,GAAIijB,GAAWL,EAAM9iB,KAAK,WAC1BmjB,GAASnI,OAET,IAAIgI,GAAOlnB,EAAEogB,EAASK,QAAQ,GAAGC,WACjCwG,GAAK1iB,KAAK,WAAY4b,EAASK,QAAQ,GAAGG,UAC1CsG,EAAK1iB,KAAK,aAAc4b,EAASU,YACjCuG,EAAS5f,OAAOyf,EAEhB,IAAIC,GAAOnnB,EAAEogB,EAASK,QAAQ,GAAGC,WAKjC,IAJAyG,EAAK3iB,KAAK,WAAY4b,EAASK,QAAQ,GAAGG,UAC1CuG,EAAK3iB,KAAK,aAAc4b,EAASU,YACjCuG,EAAS5f,OAAO0f,GAEZ/G,EAASK,QAAQ/f,OAAS,EAAG,CAC7B2mB,EAAS5f,OAAO,QAEhB,IAAI6f,GAAOtnB,EAAEogB,EAASK,QAAQ,GAAGC,WACjC4G,GAAK9iB,KAAK,WAAY4b,EAASK,QAAQ,GAAGG,UAC1C0G,EAAK9iB,KAAK,aAAc4b,EAASU,YACjCuG,EAAS5f,OAAO6f,EAEhB,IAAIC,GAAOvnB,EAAEogB,EAASK,QAAQ,GAAGC,WACjC6G,GAAK/iB,KAAK,WAAY4b,EAASK,QAAQ,GAAGG,UAC1C2G,EAAK/iB,KAAK,aAAc4b,EAASU,YACjCuG,EAAS5f,OAAO8f,GAGpBF,EAASlJ,MAAME,IAAI,QAAS,MAAO,SAAUla,GACzC,GAAIyc,GAAW5gB,EAAEyB,MAAM+C,KAAK,YACxBsc,EAAa9gB,EAAEyB,MAAM+C,KAAK,aAU9B,OARAhD,GAAK4lB,cAAcxG,GAEnBpf,EAAKif,QAAQpb,MAAOyb,WAAYA,EAAYF,SAAUA,IAEtDpf,EAAK4kB,0BAELjiB,EAAE2hB,kBACF3hB,EAAEC,kBACK,GAEX,MACJ,KAAK,YACD,GAAIojB,GAAaR,EAAM9iB,KAAK,aAC5BsjB,GAAWtI,OAEX,IAAIuI,GAAaznB,EAAE,UAAYyJ,KAAM2W,EAASK,QAAQ,GAAGC,WAAYlc,MAAQoc,SAAUR,EAASK,QAAQ,GAAGG,SAAUE,WAAYV,EAASU,aAC1I0G,GAAW/f,OAAOggB,EAElB,IAAIA,GAAaznB,EAAE,UAAYyJ,KAAM2W,EAASK,QAAQ,GAAGC,WAAYlc,MAAQoc,SAAUR,EAASK,QAAQ,GAAGG,SAAUE,WAAYV,EAASU,aAC1I0G,GAAW/f,OAAOggB,GAElBD,EAAWrJ,MAAME,IAAI,QAAS,MAAO,SAAUla,GAC3C,GAAIyc,GAAW5gB,EAAEyB,MAAM+C,KAAK,YACxBsc,EAAa9gB,EAAEyB,MAAM+C,KAAK,aAS9B,OAPAhD,GAAK4lB,cAAcxG,GAEnBpf,EAAKif,QAAQpb,MAAOyb,WAAYA,EAAYF,SAAUA,IACtDpf,EAAK4kB,0BAELjiB,EAAE2hB,kBACF3hB,EAAEC,kBACK,GAEX,MACJ,KAAK,cACD,GAAIsjB,GAAeV,EAAM9iB,KAAK,eAC9BwjB,GAAaxI,OAEb,IAAIyI,GAAe3nB,EAAE,UAAYyJ,KAAM2W,EAASK,QAAQ,GAAGC,WAAYlc,MAAQoc,SAAUR,EAASK,QAAQ,GAAGG,SAAUE,WAAYV,EAASU,aAC5I4G,GAAajgB,OAAOkgB,EAEpB,IAAIC,GAAe5nB,EAAE,UAAYyJ,KAAM2W,EAASK,QAAQ,GAAGC,WAAYlc,MAAQoc,SAAUR,EAASK,QAAQ,GAAGG,SAAUE,WAAYV,EAASU,aAC5I4G,GAAajgB,OAAOmgB,EAEpB,IAAIC,GAAe7nB,EAAE,UAAYyJ,KAAM2W,EAASK,QAAQ,GAAGC,WAAYlc,MAAQoc,SAAUR,EAASK,QAAQ,GAAGG,SAAUE,WAAYV,EAASU,aAC5I4G,GAAajgB,OAAOogB,EAEpB,IAAIC,GAAe9nB,EAAE,UAAYyJ,KAAM2W,EAASK,QAAQ,GAAGC,WAAYlc,MAAQoc,SAAUR,EAASK,QAAQ,GAAGG,SAAUE,WAAYV,EAASU,aAC5I4G,GAAajgB,OAAOqgB,GAEpBJ,EAAavJ,MAAME,IAAI,QAAS,MAAO,SAAUla,GAC7C,GAAIyc,GAAW5gB,EAAEyB,MAAM+C,KAAK,YACxBsc,EAAa9gB,EAAEyB,MAAM+C,KAAK,aAS9B,OAPAhD,GAAK4lB,cAAcxG,GAEnBpf,EAAKif,QAAQpb,MAAOyb,WAAYA,EAAYF,SAAUA,IACtDpf,EAAK4kB,0BAELjiB,EAAE2hB,kBACF3hB,EAAEC,kBACK,GAGX,MACJ,KAAK,iBACD,GAAI2jB,GAAkBf,EAAM9iB,KAAK,kBACjC6jB,GAAgB7I,OAEhB,IAAI8I,GAAmBhoB,EAAE,UAAYyJ,KAAM2W,EAASK,QAAQ,GAAGC,WAAYlc,MAAQoc,SAAUR,EAASK,QAAQ,GAAGG,SAAUE,WAAYV,EAASU,aAChJiH,GAAgBtgB,OAAOugB,EAEvB,IAAIC,GAAmBjoB,EAAE,UAAYyJ,KAAM2W,EAASK,QAAQ,GAAGC,WAAYlc,MAAQoc,SAAUR,EAASK,QAAQ,GAAGG,SAAUE,WAAYV,EAASU,aAChJiH,GAAgBtgB,OAAOwgB,EAEvB,IAAIC,GAAmBloB,EAAE,UAAYyJ,KAAM2W,EAASK,QAAQ,GAAGC,WAAYlc,MAAQoc,SAAUR,EAASK,QAAQ,GAAGG,SAAUE,WAAYV,EAASU,aAChJiH,GAAgBtgB,OAAOygB,EAEvB,IAAIC,GAAmBnoB,EAAE,UAAYyJ,KAAM2W,EAASK,QAAQ,GAAGC,WAAYlc,MAAQoc,SAAUR,EAASK,QAAQ,GAAGG,SAAUE,WAAYV,EAASU,aAChJiH,GAAgBtgB,OAAO0gB,GAEvBJ,EAAgB5J,MAAME,IAAI,QAAS,MAAO,SAAUla,GAChD,GAAIyc,GAAW5gB,EAAEyB,MAAM+C,KAAK,YACxBsc,EAAa9gB,EAAEyB,MAAM+C,KAAK,aAS9B,OAPAhD,GAAK4lB,cAAcxG,GAEnBpf,EAAKif,QAAQpb,MAAOyb,WAAYA,EAAYF,SAAUA,IACtDpf,EAAK4kB,0BAELjiB,EAAE2hB,kBACF3hB,EAAEC,kBACK,GAEX,MACJ,KAAK,WACD,GAAIgkB,GAAYpB,EAAM9iB,KAAK,YAC3BkkB,GAAUlJ,OAEV,IAAImJ,GAAaroB,EAAE,UAAYyJ,KAAM2W,EAASK,QAAQ,GAAGC,WAAYlc,MAAQoc,SAAUR,EAASK,QAAQ,GAAGG,SAAUE,WAAYV,EAASU,aAC1IsH,GAAU3gB,OAAO4gB,EAEjB,IAAIC,GAAatoB,EAAE,UAAYyJ,KAAM2W,EAASK,QAAQ,GAAGC,WAAYlc,MAAQoc,SAAUR,EAASK,QAAQ,GAAGG,SAAUE,WAAYV,EAASU,aAC1IsH,GAAU3gB,OAAO6gB,EAEjB,IAAIC,GAAavoB,EAAE,UAAYyJ,KAAM2W,EAASK,QAAQ,GAAGC,WAAYlc,MAAQoc,SAAUR,EAASK,QAAQ,GAAGG,SAAUE,WAAYV,EAASU,aAC1IsH,GAAU3gB,OAAO8gB,EAEjB,IAAIC,GAAaxoB,EAAE,UAAYyJ,KAAM2W,EAASK,QAAQ,GAAGC,WAAYlc,MAAQoc,SAAUR,EAASK,QAAQ,GAAGG,SAAUE,WAAYV,EAASU,aAC1IsH,GAAU3gB,OAAO+gB,EAEjB,IAAIC,GAAgB,CAsBpBL,GAAUjK,MAAMle,GAAG,QAAS,MAAO,SAAUkE,GACzC,GAAIyc,GAAW5gB,EAAEyB,MAAM+C,KAAK,YACxBsc,EAAa9gB,EAAEyB,MAAM+C,KAAK,cAE1BkkB,EAAW1oB,EAAEyB,KACjB,KAAIinB,EAAS3Z,SAAS,WAAY2Z,EAAS3Z,SAAS,UA2BpD,MAvBsB,KAAlB0Z,GAAyC,IAAlBA,EACvBzoB,EAAEyB,MAAMvB,SAAS,SACQ,IAAlBuoB,GAAyC,IAAlBA,GAC9BzoB,EAAEyB,MAAMvB,SAAS,YAQnBuoB,EAEFjnB,EAAK4lB,cAAcxG,GAEnBpf,EAAKif,QAAQpb,MAAOyb,WAAYA,EAAYF,SAAUA,IAElD6H,GAAiB,GACjBjnB,EAAK4kB,0BAGTjiB,EAAE2hB,kBACF3hB,EAAEC,kBACK,GAGX,MACJ,KAAK,WACD,GAAIukB,GAAY3B,EAAM9iB,KAAK,YAC3BykB,GAAUzJ,OAEV,IAAI0J,GAAa5oB,EAAE,UAAYyJ,KAAM2W,EAASK,QAAQ,GAAGC,WAAYlc,MAAQoc,SAAUR,EAASK,QAAQ,GAAGG,SAAUE,WAAYV,EAASU,aAC1I6H,GAAUlhB,OAAOmhB,EAEjB,IAAIC,GAAa7oB,EAAE,UAAYyJ,KAAM2W,EAASK,QAAQ,GAAGC,WAAYlc,MAAQoc,SAAUR,EAASK,QAAQ,GAAGG,SAAUE,WAAYV,EAASU,aAC1I6H,GAAUlhB,OAAOohB,EAEjB,IAAIC,GAAa9oB,EAAE,UAAYyJ,KAAM2W,EAASK,QAAQ,GAAGC,WAAYlc,MAAQoc,SAAUR,EAASK,QAAQ,GAAGG,SAAUE,WAAYV,EAASU,aAC1I6H,GAAUlhB,OAAOqhB,EAEjB,IAAIC,GAAa/oB,EAAE,UAAYyJ,KAAM2W,EAASK,QAAQ,GAAGC,WAAYlc,MAAQoc,SAAUR,EAASK,QAAQ,GAAGG,SAAUE,WAAYV,EAASU,aAC1I6H,GAAUlhB,OAAOshB,EAEjB,IAAIC,GAAahpB,EAAE,UAAYyJ,KAAM2W,EAASK,QAAQ,GAAGC,WAAYlc,MAAQoc,SAAUR,EAASK,QAAQ,GAAGG,SAAUE,WAAYV,EAASU,aAC1I6H,GAAUlhB,OAAOuhB,EAEjB,IAAIC,GAAajpB,EAAE,UAAYyJ,KAAM2W,EAASK,QAAQ,GAAGC,WAAYlc,MAAQoc,SAAUR,EAASK,QAAQ,GAAGG,SAAUE,WAAYV,EAASU,aAC1I6H,GAAUlhB,OAAOwhB,EAEjB,IAAIC,GAAalpB,EAAE,UAAYyJ,KAAM2W,EAASK,QAAQ,GAAGC,WAAYlc,MAAQoc,SAAUR,EAASK,QAAQ,GAAGG,SAAUE,WAAYV,EAASU,aAC1I6H,GAAUlhB,OAAOyhB,EAEjB,IAAIC,GAAanpB,EAAE,UAAYyJ,KAAM2W,EAASK,QAAQ,GAAGC,WAAYlc,MAAQoc,SAAUR,EAASK,QAAQ,GAAGG,SAAUE,WAAYV,EAASU,aAC1I6H,GAAUlhB,OAAO0hB,EAEjB,IAAIC,GAAgB,CACpBppB,GAAE,eAAekB,OACjBlB,EAAE,eAAeme,MAAME,IAAI,QAAS,SAAUla,GAK1C,MAJA3C,GAAK4kB,0BAELjiB,EAAE2hB,kBACF3hB,EAAEC,kBACK,IAGXpE,EAAE,cAAcme,MAAMle,GAAG,QAAS,SAAUkE,GAOxC,MANAilB,GAAgB,EAChBT,EAAUzkB,KAAK,OAAO/D,YAAY,6BAClCH,EAAE,eAAekB,OAEjBiD,EAAE2hB,kBACF3hB,EAAEC,kBACK,IAGXukB,EAAUxK,MAAMle,GAAG,QAAS,MAAO,SAAUkE,GACzC,GAAIukB,GAAW1oB,EAAEyB,KACjB,MAAIinB,EAAS3Z,SAAS,UAAY2Z,EAAS3Z,SAAS,WAAa2Z,EAAS3Z,SAAS,UAAY2Z,EAAS3Z,SAAS,WAsBjH,MAlBsB,KAAlBqa,GAAyC,IAAlBA,EACvBppB,EAAEyB,MAAMvB,SAAS,SACQ,IAAlBkpB,GAAyC,IAAlBA,EAC9BppB,EAAEyB,MAAMvB,SAAS,UACQ,IAAlBkpB,GAAyC,IAAlBA,EAC9BppB,EAAEyB,MAAMvB,SAAS,SACQ,IAAlBkpB,GAAyC,IAAlBA,GAC9BppB,EAAEyB,MAAMvB,SAAS,UAGC,IAAlBkpB,GACAppB,EAAE,eAAemB,SAGnBioB,EAEFjlB,EAAE2hB,kBACF3hB,EAAEC,kBACK,GAGX,MACJ,KAAK,eACDpE,EAAE,cAAcmB,OAChBnB,EAAE,eAAemB,MAEjB,IAAIkoB,GAAgBrC,EAAM9iB,KAAK,gBAC/BmlB,GAAcnK,OAEd,IAAIoK,GAAiBtpB,EAAE,UAAYyJ,KAAM2W,EAASK,QAAQ,GAAGC,WAAYlc,MAAQoc,SAAUR,EAASK,QAAQ,GAAGG,SAAUE,WAAYV,EAASU,aAC9IuI,GAAc5hB,OAAO6hB,EAErB,IAAIC,GAAiBvpB,EAAE,UAAYyJ,KAAM2W,EAASK,QAAQ,GAAGC,WAAYlc,MAAQoc,SAAUR,EAASK,QAAQ,GAAGG,SAAUE,WAAYV,EAASU,aAC9IuI,GAAc5hB,OAAO8hB,EAErB,IAAIC,GAAiBxpB,EAAE,UAAYyJ,KAAM2W,EAASK,QAAQ,GAAGC,WAAYlc,MAAQoc,SAAUR,EAASK,QAAQ,GAAGG,SAAUE,WAAYV,EAASU,aAC9IuI,GAAc5hB,OAAO+hB,EAErB,IAAIC,GAAiBzpB,EAAE,UAAYyJ,KAAM2W,EAASK,QAAQ,GAAGC,WAAYlc,MAAQoc,SAAUR,EAASK,QAAQ,GAAGG,SAAUE,WAAYV,EAASU,aAC9IuI,GAAc5hB,OAAOgiB,EAErB,IAAIC,GAAoB,CAExB1pB,GAAE,eAAeme,MAAME,IAAI,QAAS,SAAUla,GAK1C,MAJA3C,GAAK4kB,0BAELjiB,EAAE2hB,kBACF3hB,EAAEC,kBACK,IAGXpE,EAAE,cAAcme,MAAMle,GAAG,QAAS,SAAUkE,GASxC,MARAulB,GAAoB,EACpBL,EAAcnlB,KAAK,OAAO/D,YAAY,6BAEtCqB,EAAK4lB,cAAc,GACnB5lB,EAAKif,WAELtc,EAAE2hB,kBACF3hB,EAAEC,kBACK,IAGXilB,EAAclL,MAAMle,GAAG,QAAS,MAAO,SAAUkE,GAC7C,GAAIyc,GAAW5gB,EAAEyB,MAAM+C,KAAK,YACxBsc,EAAa9gB,EAAEyB,MAAM+C,KAAK,cAE1BkkB,EAAW1oB,EAAEyB,KACjB,MAAIinB,EAAS3Z,SAAS,UAAY2Z,EAAS3Z,SAAS,WAAa2Z,EAAS3Z,SAAS,UAAY2Z,EAAS3Z,SAAS,WAqBjH,MAjB0B,KAAtB2a,EACA1pB,EAAEyB,MAAMvB,SAAS,SACY,IAAtBwpB,EACP1pB,EAAEyB,MAAMvB,SAAS,UACY,IAAtBwpB,EACP1pB,EAAEyB,MAAMvB,SAAS,SACY,IAAtBwpB,GACP1pB,EAAEyB,MAAMvB,SAAS,YAGnBwpB,EAEFloB,EAAK4lB,cAAcxG,GACnBpf,EAAKif,QAAQpb,MAAOyb,WAAYA,EAAYF,SAAUA,EAAU+I,WAAYD,IAE5EvlB,EAAE2hB,kBACF3hB,EAAEC,kBACK,MAMjB3C,KAAKuY,mBAEPvY,MAAKqY,UAAUhK,QAIvBkU,EAAM/e,UAAUmiB,cAAgB,SAAUxG,GACtC,GAAI5E,GAAcva,KAAKskB,cACnB9E,EAAajF,EAAcva,KAAKwf,UACpCxf,MAAKwf,WAAajF,CAElB,IAAIxX,IAAS0c,SAAYzf,KAAKykB,YAAYhF,SAAUN,SAAYA,EAAUK,WAAcA,EACxF,OAAOphB,MAAKkB,SAAUoG,IAAK,qBAAsBD,KAAM,OAAQ1C,KAAMA,KAGzEwf,EAAM/e,UAAUohB,SAAW,SAAUtG,GACjC,GAAIve,GAAOC,IAEXA,MAAKqY,UAAY,IAEjB,IAAIsH,GAAajP,EAAEyX,OAAOnoB,KAAKykB,YAAY7F,UAAW,SAAUlc,EAAGiB,GAC/D,OAAQ+M,EAAE0X,IAAIroB,EAAKif,QAAS,SAAUlF,GAAU,MAAOA,GAAOuF,YAAc3c,EAAE2c,cAGlF9gB,GAAEkF,KAAKkc,EAAY,SAAUhc,EAAGjB,GAC5B3C,EAAKif,QAAQpb,MAAOyb,WAAY3c,EAAE2c,WAAYF,SAAU,MAG5Dnf,KAAKqoB,iBAAiB/J,IAO1BiE,EAAM/e,UAAU6kB,iBAAmB,SAAU/J,GACzC,GAAIve,GAAOC,IAEXzB,GAAE,mBAAmBkB,OACK,WAAtBO,KAAKI,QAAQyiB,MACbtkB,EAAE,oBAAoBkB,OACtBlB,EAAE,oBAAoB6E,WAAW3D,QAEjClB,EAAE,oBAAoBkB,OAG1BlB,EAAEmT,KAAK3R,EAAKuoB,gBAAgBhK,EAAQwB,QAAU,KAAO9f,KAAKqjB,YAAY1R,KAAK,SAAS/L,GAChF,MAAOrH,GAAEmT,KAAK9L,EAAQ7F,EAAKujB,cAC5B3R,KAAK,SAAS/L,GACa,WAAtB7F,EAAKK,QAAQyiB,KACbtkB,EAAE,oBAAoBmB,QAEtBnB,EAAE,oBAAoBK,SACtBL,EAAE,kBAAkBK,SACpBL,EAAE,oBAAoBK,UAG1BL,EAAE,yBAAyByJ,KAAKpC,EAAOya,OACvC9hB,EAAE,6BAA6ByJ,KAAKpC,EAAO2iB,WAC3ChqB,EAAE,2BAA2ByJ,KAAKpC,EAAO4iB,SACzCjqB,EAAE,6BAA6ByJ,KAAKpC,EAAO6iB,WAC3ClqB,EAAE,kBAAkBmB,OAEpBK,EAAK6iB,WAAW,cAEZhd,EAAO4iB,QAAU5iB,EAAOya,OAAS,GACjCtgB,EAAK6iB,WAAW,QAEhB7iB,EAAK6iB,WAAW,UAKxBrkB,EAAE,oCAAoCqe,IAAI,mBAAoB,SAAUla,GAKpE,MAJA3C,GAAK4jB,aAELjhB,EAAE2hB,kBACF3hB,EAAEC,kBACK,KAIf4f,EAAM/e,UAAU8kB,gBAAkB,SAAUvI,GACxC,GAAIhgB,GAAOC,KACP2O,EAAWpQ,EAAEqQ,UAEjB,IAAI5O,KAAKI,QAAQoiB,OAAQ,CACrB,GAAIzf,IACA4C,IAAK3F,KAAKykB,YAAY9e,IACtBqa,YAAahgB,KAAKykB,YAAYzE,YAC9BP,SAAUzf,KAAKykB,YAAYhF,SAC3BM,KAAMA,EACN1b,QAASrE,KAAKgf,SAGd0J,IACsB,YAAtB3oB,EAAKK,QAAQyiB,OACb6F,EAAQC,OAAS,OAGrBvqB,KAAKkB,SAAUmG,KAAM,OAAQC,IAAK,sBAAuBgjB,QAASA,EAAS3lB,KAAMA,IAAQxD,KAAK,SAASwD,GACnG4L,EAASG,QAAQ/L,SAGrB4L,GAASG,SACLyZ,UAAW,EACXC,QAAS,EACTnI,MAAO,EACPoI,UAAW,IAInB,OAAO9Z,GAASI,WAOpBwT,EAAMuC,SACFrf,KAAM,UACNmZ,YACIC,aAAc,yCACdQ,WAAY,EACZL,UACIG,SAAU,EACVF,WAAY,0EAEZE,SAAU,EACVF,WAAY,8EAGhBJ,aAAc,yCACdQ,WAAY,EACZL,UACIG,SAAU,EACVF,WAAY,0EAEZE,SAAU,EACVF,WAAY,8EAGhBJ,aAAc,yCACdQ,WAAY,EACZL,UACIG,SAAU,EACVF,WAAY,0EAEZE,SAAU,EACVF,WAAY,8EAGhBJ,aAAc,yCACdQ,WAAY,EACZL,UACIG,SAAU,EACVF,WAAY,0EAEZE,SAAU,EACVF,WAAY,8EAGhBJ,aAAc,yCACdQ,WAAY,EACZL,UACIG,SAAU,EACVF,WAAY,0EAEZE,SAAU,GACVF,WAAY,+EAKxBsD,EAAMwC,SACFtf,KAAM,UACNmZ,YACIC,aAAc,yCACdQ,WAAY,EACZL,UACIG,SAAU,EACVF,WAAY,0EAEZE,SAAU,EACVF,WAAY,4EAEZE,SAAU,GACVF,WAAY,4EAEZE,SAAU,GACVF,WAAY,8EAGhBJ,aAAc,yCACdQ,WAAY,EACZL,UACIG,SAAU,EACVF,WAAY,0EAEZE,SAAU,EACVF,WAAY,4EAEZE,SAAU,GACVF,WAAY,4EAEZE,SAAU,GACVF,WAAY,8EAGhBJ,aAAc,yCACdQ,WAAY,EACZL,UACIG,SAAU,EACVF,WAAY,0EAEZE,SAAU,EACVF,WAAY,4EAEZE,SAAU,GACVF,WAAY,4EAEZE,SAAU,GACVF,WAAY,8EAGhBJ,aAAc,yCACdQ,WAAY,EACZL,UACIG,SAAU,EACVF,WAAY,0EAEZE,SAAU,EACVF,WAAY,4EAEZE,SAAU,GACVF,WAAY,4EAEZE,SAAU,GACVF,WAAY,8EAGhBJ,aAAc,yCACdQ,WAAY,EACZL,UACIG,SAAU,EACVF,WAAY,0EAEZE,SAAU,GACVF,WAAY,4EAEZE,SAAU,GACVF,WAAY,4EAEZE,SAAU,GACVF,WAAY,+EAKxBsD,EAAMyC,WACFvf,KAAM,YACNmZ,YACIC,aAAc,4DACdQ,WAAY,EACZL,UACIG,SAAU,EACVF,WAAY,SAEZE,SAAU,EACVF,WAAY,YAGhBJ,aAAc,4DACdQ,WAAY,EACZL,UACIG,SAAU,EACVF,WAAY,SAEZE,SAAU,EACVF,WAAY,YAGhBJ,aAAc,4DACdQ,WAAY,EACZL,UACIG,SAAU,EACVF,WAAY,SAEZE,SAAU,EACVF,WAAY,YAGhBJ,aAAc,4DACdQ,WAAY,EACZL,UACIG,SAAU,EACVF,WAAY,SAEZE,SAAU,EACVF,WAAY,YAGhBJ,aAAc,4DACdQ,WAAY,EACZL,UACIG,SAAU,EACVF,WAAY,SAEZE,SAAU,EACVF,WAAY,aAKxBsD,EAAM0C,aACFxf,KAAM,cACNmZ,YACIC,aAAc,mEACdQ,WAAY,EACZL,UACIG,SAAU,EACVF,WAAY,kBAEZE,SAAU,EACVF,WAAY,kBAEZE,SAAU,EACVF,WAAY,kBAEZE,SAAU,EACVF,WAAY,oBAGhBJ,aAAc,kEACdQ,WAAY,EACZL,UACIG,SAAU,EACVF,WAAY,kBAEZE,SAAU,EACVF,WAAY,kBAEZE,SAAU,EACVF,WAAY,kBAEZE,SAAU,EACVF,WAAY,oBAGhBJ,aAAc,mEACdQ,WAAY,EACZL,UACIG,SAAU,EACVF,WAAY,kBAEZE,SAAU,EACVF,WAAY,kBAEZE,SAAU,EACVF,WAAY,kBAEZE,SAAU,EACVF,WAAY,oBAGhBJ,aAAc,kEACdQ,WAAY,EACZL,UACIG,SAAU,EACVF,WAAY,kBAEZE,SAAU,EACVF,WAAY,kBAEZE,SAAU,EACVF,WAAY,kBAEZE,SAAU,EACVF,WAAY,oBAGhBJ,aAAc,mEACdQ,WAAY,EACZL,UACIG,SAAU,EACVF,WAAY,kBAEZE,SAAU,EACVF,WAAY,kBAEZE,SAAU,EACVF,WAAY,kBAEZE,SAAU,EACVF,WAAY,qBAKxBsD,EAAM2C,gBACFzf,KAAM,iBACNmZ,YACIC,aAAc,+BACdQ,WAAY,EACZL,UACIG,SAAU,EACVF,WAAY,kBAEZE,SAAU,EACVF,WAAY,kBAEZE,SAAU,EACVF,WAAY,kBAEZE,SAAU,EACVF,WAAY,oBAGhBJ,aAAc,+BACdQ,WAAY,EACZL,UACIG,SAAU,EACVF,WAAY,kBAEZE,SAAU,EACVF,WAAY,kBAEZE,SAAU,EACVF,WAAY,kBAEZE,SAAU,EACVF,WAAY,oBAGhBJ,aAAc,+BACdQ,WAAY,EACZL,UACIG,SAAU,EACVF,WAAY,kBAEZE,SAAU,EACVF,WAAY,kBAEZE,SAAU,EACVF,WAAY,kBAEZE,SAAU,EACVF,WAAY,oBAGhBJ,aAAc,+BACdQ,WAAY,EACZL,UACIG,SAAU,EACVF,WAAY,kBAEZE,SAAU,EACVF,WAAY,kBAEZE,SAAU,EACVF,WAAY,kBAEZE,SAAU,EACVF,WAAY,oBAGhBJ,aAAc,+BACdQ,WAAY,EACZL,UACIG,SAAU,EACVF,WAAY,kBAEZE,SAAU,EACVF,WAAY,kBAEZE,SAAU,EACVF,WAAY,kBAEZE,SAAU,EACVF,WAAY,qBAKxBsD,EAAM4C,UACF1f,KAAM,WACNmZ,YACIC,aAAc,6CACdQ,WAAY,EACZL,UACIG,SAAU,EACVF,WAAY,4BAEZE,SAAU,EACVF,WAAY,uBAEZE,SAAU,EACVF,WAAY,4BAEZE,SAAU,EACVF,WAAY,yBAGhBJ,aAAc,6CACdQ,WAAY,EACZL,UACIG,SAAU,EACVF,WAAY,4BAEZE,SAAU,EACVF,WAAY,uBAEZE,SAAU,EACVF,WAAY,4BAEZE,SAAU,EACVF,WAAY,yBAGhBJ,aAAc,6CACdQ,WAAY,EACZL,UACIG,SAAU,EACVF,WAAY,4BAEZE,SAAU,EACVF,WAAY,uBAEZE,SAAU,EACVF,WAAY,4BAEZE,SAAU,EACVF,WAAY,yBAGhBJ,aAAc,6CACdQ,WAAY,EACZL,UACIG,SAAU,EACVF,WAAY,4BAEZE,SAAU,EACVF,WAAY,uBAEZE,SAAU,EACVF,WAAY,4BAEZE,SAAU,EACVF,WAAY,yBAGhBJ,aAAc,6CACdQ,WAAY,EACZL,UACIG,SAAU,EACVF,WAAY,4BAEZE,SAAU,EACVF,WAAY,uBAEZE,SAAU,EACVF,WAAY,4BAEZE,SAAU,EACVF,WAAY,0BAKxBsD,EAAM6C,UACF3f,KAAM,WACNmZ,YACIC,aAAc,6CACdQ,WAAY,EACZL,UACIG,SAAU,EACVF,WAAY,4BAEZE,SAAU,EACVF,WAAY,uBAEZE,SAAU,EACVF,WAAY,4BAEZE,SAAU,EACVF,WAAY,uBAEZE,SAAU,EACVF,WAAY,4BAEZE,SAAU,EACVF,WAAY,4BAEZE,SAAU,EACVF,WAAY,4BAEZE,SAAU,EACVF,WAAY,0BAKxBsD,EAAM8C,cACF5f,KAAM,eACNmZ,YACIC,aAAc,4HACdQ,WAAY,EACZL,UACIG,SAAU,EACVF,WAAY,kBAEZE,SAAU,EACVF,WAAY,kBAEZE,SAAU,EACVF,WAAY,kBAEZE,SAAU,EACVF,WAAY,qBAMjBsD;ACp2CX,GAAInkB,MAAOA,QAEXA,MAAKwqB,aAAgB,WACjB,GAAI5nB,IACA6hB,KAAM,UACNgG,YAAY,GAEZD,EAAe,SAAUxoB,GACzB,GAAIL,GAAOC,IAEXA,MAAKI,QAAU7B,EAAE2C,UAAWF,EAAgBZ,GAC5ChC,KAAKmkB,MAAM7D,KAAK1e,KAAMA,KAAKI,SAE3BJ,KAAK8oB,mBAAsBC,aAAc7oB,GAAGmB,mBAC5CnB,GAAGqD,cAAcvD,KAAK8oB,kBAAmBvqB,EAAE,sBAAsB,IAEjEyB,KAAKgpB,iBAAoBC,QAAS/oB,GAAGU,cACrCZ,KAAKkpB,gBAAmBC,UAAWjpB,GAAGU,cAGtCZ,KAAKopB,cAAiBA,aAAclpB,GAAGU,cACvCZ,KAAKqpB,SAAYA,QAASnpB,GAAGU,cAE7BZ,KAAKspB,SAAYA,QAASppB,GAAGU,cAE7BZ,KAAKupB,aAAgBA,YAAarpB,GAAGU,cAErCV,GAAGqD,eAAgB6lB,aAAcppB,KAAKopB,aAAcC,QAASrpB,KAAKqpB,QAASE,YAAavpB,KAAKupB,YAAaD,QAAStpB,KAAKspB,SAAW/qB,EAAE,cAAc,IAGnJ2B,GAAGqD,eAAgB6lB,aAAcppB,KAAKopB,cAAgB7qB,EAAE,kBAAkB,IAK1EyB,KAAKwpB,gBAAmBC,UAAWvpB,GAAGmB,mBAEtCrB,KAAK0pB,cAAgB,SAAUnpB,GAE3B,OAAW0L,KAAP1L,IACAnC,KAAKkB,SACDoG,IAAK,mBACLD,KAAM,OACN1C,MAAQ4mB,SAAUppB,EAAGA,MACtBoR,KAAK,WACJ,MAAO5R,GAAK6pB,yBACbjY,KAAK,SAAUkY,GACd9pB,EAAK+pB,wBAAwBD,MAGM,IAAnCtrB,EAAE,QAAQ+O,SAAS,aAAsB,CACzC/O,EAAE,KAAKG,YAAY,WACnBH,EAAE,kBAAkBE,SAAS,aAC7BF,EAAE,UAAUG,YAAY,YAExB,IAAIqrB,GAAgB3c,MAAMgD,aAC1B7R,GAAEwrB,GAAetrB,SAAS,cAKtCuB,KAAKgqB,iBAAoBA,gBAAiB9pB,GAAGU,cAI7CZ,KAAKiqB,kBAAqBC,YAAahqB,GAAGmB,mBAK1CrB,KAAKmqB,YAiuCT,OA9tCAvB,GAAaplB,UAAY4mB,OAAOC,OAAOjsB,KAAKmkB,MAAM/e,WAClDolB,EAAaplB,UAAU8mB,YAAc1B,EAErCA,EAAaplB,UAAU2mB,UAAY,WAC/B,GAAIpqB,GAAOC,IAEXzB,GAAE,WAAW+F,SAEbvE,EAAKwqB,kBAELhsB,EAAE,aAAame,MAAMle,GAAG,mBAAoB,aAAc,SAAUkE,GAChE,GAAI8nB,GAAUjsB,EAAEyB,MAAM+C,KAAK,MAK3B,OAJAhD,GAAK0qB,UAAUD,GAEf9nB,EAAE2hB,kBACF3hB,EAAEC,kBACK,IAKXpE,EAAE,OAAOme,MAAMle,GAAG,mBAAoB,aAAc,SAAUkE,GAC1D,GAAI3C,EAAK2qB,WAAY,CACjB,GAAIF,GAAUjsB,EAAEyB,MAAM+C,KAAK,MAI3B,IAFAhD,EAAK4qB,WAAU,GAEC,UAAZH,GAA6C,YAAtBzqB,EAAK6qB,aAK5B,MAJA7qB,GAAK0qB,UAAUD,GAAS,GACxB9nB,EAAE2hB,kBACF3hB,EAAEC,iBACF5C,EAAK4qB,WAAU,IACR,CAIX,KAD8B,UAAZH,EAAsBjsB,EAAE,UAAYA,EAAE,IAAMisB,IAC9CzrB,GAAG,YAIf,MAHA2D,GAAE2hB,kBACF3hB,EAAEC,iBACF5C,EAAK4qB,WAAU,IACR,CAGX5qB,GAAK0qB,UAAUD,GAAS,GAExB9nB,EAAE2hB,kBACF3hB,EAAEC,iBAGN,OAAO,IAGXpE,EAAE,eAAeC,GAAG,QAAS,WACzBuB,EAAKka,cAIT1b,EAAE,mBAAmBC,GAAG,QAAS,WAC7BuB,EAAK0qB,UAAU,aAGnBlsB,EAAE,uBAAuBC,GAAG,QAAS,WACjCuB,EAAK0qB,UAAU,aAGnBlsB,EAAE,YAAYC,GAAG,QAAS,WACtBuB,EAAK0qB,UAAU,cAGnBlsB,EAAE,uBAAuBC,GAAG,QAAS,WACjCuB,EAAK0qB,UAAU,kBAGnBlsB,EAAE,kBAAkBC,GAAG,QAAS,WAC5BD,EAAE,aAAaE,SAAS,qBACxBsB,EAAK0qB,UAAU,kBAGnBlsB,EAAE,oBAAoBC,GAAG,QAAS,WAC9BD,EAAE,aAAaE,SAAS,uBACxBsB,EAAK0qB,UAAU,kBAGnBlsB,EAAE,eAAeC,GAAG,QAAS,WACzBuB,EAAK0qB,UAAU,YAGnBlsB,EAAE,gBAAgBC,GAAG,QAAS,WAC1BD,EAAE,gBAAgBiW,QAAQ,OAI9BjW,EAAE,mBAAmBC,GAAG,YAAa,WACjCwB,KAAK6qB,WAAWznB,SAAS,GAAG0nB,MAAMzI,QAAU,OAC5CriB,KAAK6qB,WAAWznB,SAAS,GAAG0nB,MAAMzI,QAAU,QAC5CriB,KAAK6qB,WAAWznB,SAAS,GAAG0nB,MAAMzI,QAAU,UAIhD9jB,EAAE,mBAAmBC,GAAG,WAAY,WAChCwB,KAAK6qB,WAAWznB,SAAS,GAAG0nB,MAAMzI,QAAU,QAC5CriB,KAAK6qB,WAAWznB,SAAS,GAAG0nB,MAAMzI,QAAU,OAC5CriB,KAAK6qB,WAAWznB,SAAS,GAAG0nB,MAAMzI,QAAU,SAGhD9jB,EAAE,uBAAuBC,GAAG,YAAa,WACrCwB,KAAK6qB,WAAWznB,SAAS,GAAG0nB,MAAMzI,QAAU,OAC5CriB,KAAK6qB,WAAWznB,SAAS,GAAG0nB,MAAMzI,QAAU,QAC5CriB,KAAK6qB,WAAWznB,SAAS,GAAG0nB,MAAMzI,QAAU,UAIhD9jB,EAAE,uBAAuBC,GAAG,WAAY,WAChCwB,KAAKgW,cAAcvI,UAAUsd,QAAQ,WAAa,GAClD/qB,KAAK6qB,WAAWznB,SAAS,GAAG0nB,MAAMzI,QAAU,OAC5CriB,KAAK6qB,WAAWznB,SAAS,GAAG0nB,MAAMzI,QAAU,QAC5CriB,KAAK6qB,WAAWznB,SAAS,GAAG0nB,MAAMzI,QAAU,SAG5CriB,KAAK6qB,WAAWznB,SAAS,GAAG0nB,MAAMzI,QAAU,QAC5CriB,KAAK6qB,WAAWznB,SAAS,GAAG0nB,MAAMzI,QAAU,OAC5CriB,KAAK6qB,WAAWznB,SAAS,GAAG0nB,MAAMzI,QAAU,WAIR,IAAxC9jB,EAAE,eAAe+O,SAAS,YAC1B/O,EAAE,kBAAkBmB,OACpBnB,EAAE,oBAAoBkB,QAG1BlB,EAAE,eAAeqe,IAAI,QAAS,WAC1B7c,EAAKirB,iBAAgB,KAGzBzsB,EAAE,iBAAiBqe,IAAI,QAAS,WAC5B7c,EAAKkrB,sBAGT1sB,EAAE,mBAAmBqe,IAAI,QAAS,WAC9B7c,EAAKmrB,wBAGT3sB,EAAE,uBAAuB4sB,QAAQ,SAAUzoB,GACvC,GAAI0oB,GAAY7sB,EAAEyB,MAAMmD,SAASkN,KAAK,KAEtC,QAAQ3N,EAAEM,OACN,IAAK,IACDjD,EAAKsrB,mBAAmBD,EACxB,MACJ,KAAK,IACDrrB,EAAKurB,eAAeF,OA4BpCxC,EAAaplB,UAAU+mB,gBAAkB,WACrC,GAAIxqB,GAAOC,IACPD,GAAKK,QAAQyoB,WACbtqB,EAAE,cAAcK,OAAO,KACS,KAAzB8H,OAAOC,SAAS4kB,KACvBxrB,EAAK0qB,UAAU/jB,OAAOC,SAAS4kB,KAAK3d,UAAU,IAE9C7N,EAAK0qB,UAAU,SAIvB7B,EAAaplB,UAAUonB,aAAe,GACtChC,EAAaplB,UAAUknB,YAAa,EAEpC9B,EAAaplB,UAAUmnB,UAAY,SAAUa,GACzCxrB,KAAK0qB,WAAac,GAGtB5C,EAAaplB,UAAUinB,UAAY,SAAUD,EAASiB,GAClD,GAAI1rB,GAAOC,IAEPzB,GAAE,gBAAgB+O,SAAS,SAC3B/O,EAAE,gBAAgBkB,OAGtB+qB,EAAUA,EAAQ7Z,aAClB,IAAI+a,IAAoB,OAAQ,QAAS,eAAgB,QAAS,QAAS,SAAU,SAAU,WAAY,UAAW,UAOtH,IANIhb,EAAEib,IAAID,EAAkB,SAAUhpB,GAAK,MAAOA,KAAM8nB,MACpDA,EAAU,QAKVzqB,EAAK6qB,cAAgBJ,EAAzB,CAEAjsB,EAAE,OAAOG,cAAcD,SAAS+rB,GAEhCxqB,KAAK8iB,gBAAgB0H,EAErB,IAAIoB,GAAa1rB,GAAGU,YAAW,GAE3BirB,EAAW,SAAU7hB,GACrB,IAAKA,EAGD,GAFAzL,EAAE,cAAckB,OAED,SAAX+qB,EAEAzqB,EAAK+rB,kBAELvtB,EAAE,SAASkB,OACXlB,EAAE,uCAAuCkB,OACzCM,EAAKgsB,gBAAgBpa,KAAK,WACtBpT,EAAE,IAAMisB,GAAS9qB,OACjBnB,EAAE,uCAAuCK,SACzCmB,EAAK4qB,WAAU,SAEhB,CAMH,OALApsB,EAAE,SAASiW,UACXjW,EAAE,IAAMisB,GAAS5rB,SACjBL,EAAE,UAAUG,cACZH,EAAE,UAAUE,SAAS+rB,GAEbA,GACJ,IAAK,OAKD,KACJ,KAAK,eACDzqB,EAAKujB,WACLvjB,EAAKisB,wBACLztB,EAAE,cAAcmB,OACZnB,EAAE,aAAa+O,SAAS,sBACxB/O,EAAE,aAAa+O,SAAS,qBAExBvN,EAAKisB,yBAEAztB,EAAE,aAAa+O,SAAS,wBAC7B/O,EAAE,aAAaG,YAAY,uBAE3BqB,EAAKisB,yBAILjsB,EAAKisB,uBAET,MACJ,KAAK,QAEDztB,EAAE,cAAcmB,MAEhB,MACJ,KAAK,WAEDnB,EAAE,cAAcmB,OAChBK,EAAKujB,WACLvjB,EAAKksB,iBACL,MACJ,KAAK,SAKL,IAAK,UACD1tB,EAAE,cAAcmB,OAChBK,EAAKujB,UAEL,MACJ,KAAK,UAEDvjB,EAAKmsB,cAObnsB,EAAK4qB,WAAU,IAQ3B,QAHAiB,EAAW7hB,UAAU8hB,GAErBD,GAAW,GACH7rB,EAAK6qB,cACT,IAAK,OACDgB,GAAW,EACX,MACJ,KAAK,QAEDrtB,EAAE,uCAAuCkB,OAEzCM,EAAKosB,iBAAiBxa,KAAK,WACvBia,GAAW,IAGf,MACJ,KAAK,eACD7rB,EAAKqsB,kBACLrsB,EAAKisB,wBACLjsB,EAAKujB,WACLsI,GAAW,EACX,MACJ,KAAK,QACD7rB,EAAKssB,iBACLT,GAAW,EAIX,MACJ,KAAK,QACDA,GAAW,EACX,MACJ,KAAK,SAIL,IAAK,UACD7rB,EAAKujB,WACLsI,GAAW,EACX,MACJ,KAAK,WACD7rB,EAAKujB,WACLvjB,EAAKksB,kBACLL,GAAW,EACX,MACJ,KAAK,UACDrtB,EAAE,SAASkB,OACXlB,EAAE,oHAAoHkB,OACtHM,EAAKusB,eAED/tB,EAAE,aAAaQ,GAAG,aAClBR,EAAE,kGAAkGE,SAAS,WAC7GoQ,WAAW,WACPtQ,EAAE,aAAakB,OACfmsB,GAAW,IACZ,OAEHA,GAAW,EAEf,MACJ,SACIA,GAAW,GAInB7rB,EAAK6qB,aAAeJ,IAGxB5B,EAAaplB,UAAUwnB,gBAAkB,SAAUuB,GAC/C,GAAIxsB,GAAOC,MAEiC,IAAxCzB,EAAE,eAAe+O,SAAS,YAAwC,IAAjBif,IACjDxsB,EAAKijB,iBAAiB,WAItBzkB,EAAE,iBAAiBG,YAAY,UAC/BH,EAAE,mBAAmBG,YAAY,UACjCH,EAAE,eAAeE,SAAS,UAE1BF,EAAE,kBAAkBmB,OACpBnB,EAAE,oBAAoBkB,OACtBlB,EAAE,oBAAoBkB,OACtBlB,EAAE,sBAAsBmB,OAExBnB,EAAE,sBAAsBkB,OACxBlB,EAAE,wBAAwBmB,OAE1BnB,EAAE,mBAAmBkB,OACrBlB,EAAE,qBAAqBkB,OACvBlB,EAAE,iBAAiBkB,OACnBlB,EAAE,mBAAmBkB,OACrBlB,EAAE,eAAemB,OACjBnB,EAAE,iBAAiBmB,OAEnBnB,EAAE,eAAeqe,IAAI,QAAS,WAC1B7c,EAAKirB,sBAKjBpC,EAAaplB,UAAUynB,kBAAoB,WACvC,GAAIlrB,GAAOC,MAEmC,IAA1CzB,EAAE,iBAAiB+O,SAAS,YAI5B/O,EAAE,eAAeG,YAAY,UAC7BH,EAAE,mBAAmBG,YAAY,UACjCH,EAAE,iBAAiBE,SAAS,UAE5BF,EAAE,kBAAkBkB,OACpBlB,EAAE,oBAAoBmB,OAGtBnB,EAAE,oBAAoBmB,OACtBnB,EAAE,sBAAsBkB,OAExBlB,EAAE,sBAAsBkB,OACxBlB,EAAE,wBAAwBmB,OAE1BnB,EAAE,iBAAiBkB,OACnBlB,EAAE,qBAAqBkB,OACvBlB,EAAE,eAAekB,OACjBlB,EAAE,mBAAmBkB,OACrBlB,EAAE,iBAAiBmB,OACnBnB,EAAE,mBAAmBmB,OAErBnB,EAAE,iBAAiBqe,IAAI,QAAS,WAC5B7c,EAAKkrB,wBAKjBrC,EAAaplB,UAAU0nB,oBAAsB,WACzC,GAAInrB,GAAOC,MAEqC,IAA5CzB,EAAE,mBAAmB+O,SAAS,YAG9BvN,EAAKisB,wBACLztB,EAAE,eAAeG,YAAY,UAC7BH,EAAE,iBAAiBG,YAAY,UAC/BH,EAAE,mBAAmBE,SAAS,UAE9BF,EAAE,kBAAkBkB,OACpBlB,EAAE,oBAAoBmB,OAEtBnB,EAAE,oBAAoBkB,OACtBlB,EAAE,sBAAsBmB,OAExBnB,EAAE,sBAAsBmB,OACxBnB,EAAE,wBAAwBkB,OAE1BlB,EAAE,mBAAmBkB,OACrBlB,EAAE,iBAAiBkB,OACnBlB,EAAE,iBAAiBkB,OACnBlB,EAAE,eAAekB,OACjBlB,EAAE,mBAAmBmB,OACrBnB,EAAE,qBAAqBmB,OAEvBnB,EAAE,mBAAmBqe,IAAI,QAAS,WAC9B7c,EAAKmrB,0BAKjBtC,EAAaplB,UAAU0f,aAAe,WAGlC3kB,EAAE,iBAAiBuJ,IAAI,OAFT,UAGd,IAAInE,GAAI,EACR3D,MAAKmjB,uBAAyBpiB,YAAY,WACtC,GAAIqiB,GAAMzf,EAAI,CACVyf,GAAM,KACNA,EAAM,GAGV7kB,EAAE,QAAU6kB,GAAKtb,IAAI,OAVX,WAWVvJ,EAAE,QAAUoF,GAAGmE,IAAI,OAVR,UAWXnE,EACQ,IACJA,EAAI,KAET,MAGPilB,EAAaplB,UAAU6f,SAAW,WAC9B,GAAItjB,GAAOC,KACP2O,EAAWpQ,EAAEqQ,UASjB,OAPArQ,GAAE,aAAauJ,IAAI,UAAW,KAAKpI,OAEnCK,EAAKmjB,eACLljB,KAAKyO,MAAM,KAAMkD,KAAK,WAClBhD,EAASG,YAGNH,EAASI,WAGpB6Z,EAAaplB,UAAU8f,SAAW,WAC9B,GAAIvjB,GAAOC,KACP2O,EAAWpQ,EAAEqQ,UAWjB,OATArQ,GAAE,aAAauJ,IAAI,UAAW,KAE9B9H,KAAKyO,MAAM,KAAMkD,KAAK,WAClB4R,cAAcxjB,EAAKojB,wBACnB5kB,EAAE,aAAakB,OAEfkP,EAASG,YAGNH,EAASI,WAGpB6Z,EAAaplB,UAAU4oB,gBAAkB,WACrC,GACIzd,GAAWpQ,EAAEqQ,UAIjB,OAFArQ,GAAE,gBAAgBkB,OAClBkP,EAASG,UACFH,EAASI,WAGpB6Z,EAAaplB,UAAUgpB,gBAAkB,WACrC,GAAIzsB,GAAOC,IAEXD,GAAKujB,WAAW3R,KAAK,WACjBpT,EAAE,gBAAgBK,OAAO,KACzBmB,EAAKisB,2BAUbpD,EAAaplB,UAAUyoB,gBAAkB,WAGrC7tB,KAAKkB,SACDoG,IAAK,oBACLD,KAAM,QACPlG,KAAK,SAAU2V,GACc,WAAxBA,EAASuX,YAAmD,UAAxBvX,EAASuX,WAG7CluB,EAAE,gBAAgBmB,OAKlBnB,EAAE,mBAAmBmB,UAUjCkpB,EAAaplB,UAAUwoB,sBAAwB,WAG3C5tB,KAAKkB,SACDoG,IAAK,oBACLD,KAAM,QACPlG,KAAK,SAAU2V,GACdwX,QAAQC,IAAIzX,GACgB,UAAxBA,EAASuX,WAGTluB,EAAE,sBAAsBuJ,IAAI,UAAW,SAER,WAAxBoN,EAASuX,WAGhBluB,EAAE,uBAAuBuJ,IAAI,UAAW,SAGX,WAAxBoN,EAASuX,YACdluB,EAAE,uBAAuBuJ,IAAI,UAAW,YAYpD8gB,EAAaplB,UAAU0oB,YAAc,WACjC,GAAInsB,GAAOC,IAEX5B,MAAKwuB,kBAAoB,GAAIxuB,MAAKyuB,uBAElCtuB,EAAE,cAAcmB,OAChBK,EAAKujB,WACLvjB,EAAK4qB,WAAU,IAQnB/B,EAAaplB,UAAUspB,aAAe,WAElC,MAAO1uB,MAAKkB,SAAUoG,IAAK,iBAI/BkjB,EAAaplB,UAAUupB,cAAgB,WACnC,GAAIhtB,GAAOC,IAEXzB,GAAEmT,KAAK1R,KAAK8sB,gBAAgBnb,KAAK,SAAUqb,OACpB/gB,KAAf+gB,EAAMtoB,OACNnG,EAAE,gBAAgBmB,OAClButB,SAASC,eAAe,YAAYC,UAAYH,EAAMtoB,KAAKlE,KACjC,IAAtBwsB,EAAMtoB,KAAK0oB,OACXH,SAASC,eAAe,aAAannB,IAAM,8CAAgDinB,EAAMtoB,KAAK8N,KAGtGya,SAASC,eAAe,aAAannB,IAAM,8CAAgDinB,EAAMtoB,KAAK8N,KAG1GjU,EAAE,gBAAgBE,SAAS,QAC3BsB,EAAKstB,gBAAgBL,EAAMtoB,KAAKnE,QAK5CqoB,EAAaplB,UAAU6pB,gBAAkB,SAAU9sB,GAE/CnC,KAAKkB,SACDoG,IAAK,qBACLD,KAAM,OACN1C,MAAQoT,OAAQ5V,KACjBhB,QAQPqpB,EAAaplB,UAAU8pB,sBAAwB,WAC3C,GAAIvtB,GAAOC,IAEXzB,GAAEmT,KAAK1R,KAAKutB,uBAAwBvtB,KAAKwtB,2BAA4BxtB,KAAKytB,oBAAqBztB,KAAKosB,kBAAmBpsB,KAAKqjB,YAAY1R,KAAK,SAAU+b,EAAYC,EAAgBC,GAW/K,MAVA7tB,GAAKipB,gBAAgBC,QAAQyE,EAAW,GAAGG,MAC3C9tB,EAAK+oB,kBAAkBC,aAAa4E,EAAe,GAAGzD,aAEtDnqB,EAAKmpB,eAAeC,UAAUyE,EAAc,IAE5CrvB,EAAE,gBAAgBme,MAAME,IAAI,QAAS,WACjC7c,EAAKijB,iBAAiB,SACtBjjB,EAAK+tB,uBAGF/tB,EAAKysB,qBAKpB5D,EAAaplB,UAAUsqB,mBAAqB,WACxC,GAAInf,GAAWpQ,EAAEqQ,WACb7O,EAAOC,IAwBX,OAtBA5B,MAAKkB,SACDoG,IAAK,sBACNnG,KAAK,SAAU4Q,GACVA,EAAE0d,OAEFtvB,EAAE,yBAAyByJ,KAAK,IAAMmI,EAAE0d,KAAKE,eAC7Clf,WAAW,WAActQ,EAAE,yBAAyByJ,KAAKmI,EAAE0d,KAAKG,iBAAoB,KACpFzvB,EAAE,oBAAoByJ,KAAKmI,EAAE0d,KAAKI,iBAE9B9d,EAAE0d,KAAKI,gBAAkB,EACzB1vB,EAAE,gBAAgBme,MAAME,IAAI,QAAS,WACjC7c,EAAKijB,iBAAiB,SACtBjjB,EAAK+tB,uBAGTvvB,EAAE,gBAAgB4E,SAAS1D,QAInCkP,EAASG,YAGNH,EAASI,WAIpB6Z,EAAaplB,UAAU+pB,qBAAuB,WAC1C,MAAOnvB,MAAKkB,SAAUoG,IAAK,0BAG/BkjB,EAAaplB,UAAUgqB,yBAA2B,WAC9C,MAAOpvB,MAAKkB,SAAUoG,IAAK,sBAG/BkjB,EAAaplB,UAAUiqB,kBAAoB,WACvC,MAAOrvB,MAAKkB,SAAUoG,IAAK,0BAM/BkjB,EAAaplB,UAAU0qB,eAAiB,WACpC,MAAO9vB,MAAKkB,SAAUoG,IAAK,uBAG/BkjB,EAAaplB,UAAU2qB,gBAAkB,WACrC,MAAO/vB,MAAKkB,SAAUoG,IAAK,qBAG/BkjB,EAAaplB,UAAU4qB,kBAAoB,WACvC,MAAOhwB,MAAKkB,SAAUoG,IAAK,qBAG/BkjB,EAAaplB,UAAU6qB,eAAiB,WACpC,MAAOjwB,MAAKkB,SAAUoG,IAAK,uBAG/BkjB,EAAaplB,UAAUomB,qBAAuB,WAC1C,MAAOxrB,MAAKkB,SAAUoG,IAAK,uBAG/BkjB,EAAaplB,UAAU8qB,mBAAqB,WACxC,GAAIvuB,GAAOC,IACXzB,GAAEmT,KAAK1R,KAAKmuB,kBAAmBnuB,KAAKkuB,iBAAkBluB,KAAKouB,oBAAqBpuB,KAAKquB,iBAAkBruB,KAAK4pB,uBAAwB5pB,KAAKosB,kBAAmBpsB,KAAKqjB,YAAY1R,KAAK,SAAUyX,EAAcmF,EAAa/E,EAAgBD,EAAaD,GAChPvpB,EAAKqpB,aAAaA,aAAaA,EAAa,GAAGyE,MAC/C9tB,EAAKspB,QAAQA,QAAQkF,EAAY,GAAGV,MACpC9tB,EAAKwpB,YAAYA,YAAYA,EAAY,GAAGiF,mBAC5CzuB,EAAKypB,eAAeC,UAAUD,EAAe,GAAGC,WAChD1pB,EAAK0uB,aAAanF,MAI1BV,EAAaplB,UAAUirB,aAAe,SAAUC,GAC5C,GAAI3uB,GAAOC,IACXD,GAAKupB,QAAQA,QAAQoF,EAAW,GAAGC,KAGnC,KAAK,GADDC,GAAa,EACRjrB,EAAI,EAAGA,EAAI+qB,EAAW,GAAGC,KAAK1vB,OAAQ0E,IAC3CirB,EAAaF,EAAW,GAAGC,KAAKhrB,GAAGkrB,MAAQD,CAgB/C,OAbA7uB,GAAKiqB,gBAAgBA,gBAAgB4E,GAEjCF,EAAW,GAAGC,KAAK1vB,OAAS,GAC5BV,EAAE,8BAA8BuJ,IAAI,SAAU,SAG9C4mB,EAAW,GAAGC,KAAK1vB,QAAU,IAC7BV,EAAE,oBAAoBuJ,IAAI,SAAU,SACpCvJ,EAAE,oBAAoBE,SAAS,aAC/BF,EAAE,6CAA6CuJ,IAAI,SAAU,QAC7DvJ,EAAE,6CAA6CuJ,IAAI,SAAU,SAG1D/H,EAAKysB,mBAGhB5D,EAAaplB,UAAUsmB,wBAA0B,SAAU4E,GACvD,GAAI3uB,GAAOC,IACXD,GAAKupB,QAAQA,QAAQoF,EAAWC,KAGhC,KAAK,GADDC,GAAa,EACRjrB,EAAI,EAAGA,EAAI+qB,EAAWC,KAAK1vB,OAAQ0E,IACxCirB,EAAaF,EAAWC,KAAKhrB,GAAGkrB,MAAQD,CAI5C,OADA7uB,GAAKiqB,gBAAgBA,gBAAgB4E,GAC9B7uB,EAAKysB,mBAOhB5D,EAAaplB,UAAUsrB,qBAAuB,WAC1C,GAAI/uB,GAAOC,IACXzB,GAAEmT,KAAK1R,KAAKmuB,kBAAmBnuB,KAAK+uB,sBAAuB/uB,KAAKkuB,iBAAkBluB,KAAKquB,iBAAkBruB,KAAKosB,kBAAmBpsB,KAAKqjB,YAAY1R,KAAK,SAAUyX,EAAca,EAAkBsE,EAAahF,GAM1M,MAJAxpB,GAAKqpB,aAAaA,aAAaA,EAAa,GAAGyE,MAC/C9tB,EAAKspB,QAAQA,QAAQkF,EAAY,GAAGV,MACpC9tB,EAAKwpB,YAAYA,YAAYA,EAAY,GAAGiF,mBAC5CzuB,EAAKkqB,iBAAiBC,YAAYD,EAAiB,GAAGC,aAC/CnqB,EAAKysB,qBAIpB5D,EAAaplB,UAAUurB,oBAAsB,WACzC,MAAO3wB,MAAKkB,SAAUoG,IAAK,4BAG/BkjB,EAAaplB,UAAUwW,SAAW,WAC9B,GAAIja,GAAOC,KACP2O,EAAWpQ,EAAEqQ,UAiCjB,OA/BArQ,GAAE,SAASmB,OACXnB,EAAE,WAAWE,SAAS,QACtBuB,KAAKyO,MAAM,KAAMkD,KAAK,WAElB,MADApT,GAAE,WAAWE,SAAS,QACfsB,EAAK0O,MAAM,OACnBkD,KAAK,WAEJ,MADApT,GAAE,WAAWE,SAAS,QACfsB,EAAK0O,MAAM,OACnBkD,KAAK,WAEJ,MADApT,GAAE,WAAWE,SAAS,QACfsB,EAAK0O,MAAM,OACnBkD,KAAK,WAEJ,MADApT,GAAE,WAAWE,SAAS,QACfsB,EAAK0O,MAAM,OACnBkD,KAAK,WAEJ,MADApT,GAAE,WAAWE,SAAS,QACfsB,EAAK0O,MAAM,OACnBkD,KAAK,WAEJ,MADApT,GAAE,WAAWE,SAAS,QACfsB,EAAK0O,MAAM,OACnBkD,KAAK,WAEJ,MADApT,GAAE,WAAWE,SAAS,QACfsB,EAAK0O,MAAM,OACnBkD,KAAK,WAEJ,MADApT,GAAE,WAAWE,SAAS,QACfsB,EAAK0O,MAAM,OACnBkD,KAAK,WACJpT,EAAE,SAASkB,OACXkP,EAASG,YAGNH,EAASI,WAGpB6Z,EAAaplB,UAAUwrB,aAAe,WAClC,GAAIjvB,GAAOC,KAEP2O,EAAWpQ,EAAEqQ,UAWjB,OATArQ,GAAE,SAASmB,OACXM,KAAKyO,MAAM,GAAGkD,KAAK,WAEf,MADApT,GAAE,mFAAmFE,SAAS,QACvFsB,EAAK0O,MAAM,OACnBkD,KAAK,WACJpT,EAAE,SAASkB,OACXkP,EAASG,YAGNH,EAASI,WAGpB6Z,EAAaplB,UAAUyW,UAAY,WAC/B,GAAIla,GAAOC,KACP2O,EAAWpQ,EAAEqQ,UAmCjB,OAjCArQ,GAAE,SAASmB,OAEXM,KAAKyO,MAAM,GAAGkD,KAAK,WAEf,MADApT,GAAE,WAAWG,YAAY,QAClBqB,EAAK0O,MAAM,OACnBkD,KAAK,WAEJ,MADApT,GAAE,WAAWG,YAAY,QAClBqB,EAAK0O,MAAM,OACnBkD,KAAK,WAEJ,MADApT,GAAE,WAAWG,YAAY,QAClBqB,EAAK0O,MAAM,OACnBkD,KAAK,WAEJ,MADApT,GAAE,WAAWG,YAAY,QAClBqB,EAAK0O,MAAM,OACnBkD,KAAK,WAEJ,MADApT,GAAE,WAAWG,YAAY,QAClBqB,EAAK0O,MAAM,OACnBkD,KAAK,WAEJ,MADApT,GAAE,WAAWG,YAAY,QAClBqB,EAAK0O,MAAM,OACnBkD,KAAK,WAEJ,MADApT,GAAE,WAAWG,YAAY,QAClBqB,EAAK0O,MAAM,OACnBkD,KAAK,WAEJ,MADApT,GAAE,WAAWG,YAAY,QAClBqB,EAAK0O,MAAM,OACnBkD,KAAK,WAEJ,MADApT,GAAE,WAAWG,YAAY,QAClBqB,EAAK0O,MAAM,OACnBkD,KAAK,WACJhD,EAASG,YAGNH,EAASI,WAGpB6Z,EAAaplB,UAAUuoB,cAAgB,WACnC,GAAIhsB,GAAOC,KAEP2O,EAAWpQ,EAAEqQ,UAUjB,OARArQ,GAAE,SAASmB,OACXM,KAAKyO,MAAM,IAAIkD,KAAK,WAEhB,MADApT,GAAE,mFAAmFG,YAAY,QAC1FqB,EAAK0O,MAAM,QACnBkD,KAAK,WACJhD,EAASG,YAGNH,EAASI,WAOpB6Z,EAAaplB,UAAUsgB,eAAiB,SAAUD,GAC9C,GAAI9jB,GAAOC,IACXzB,GAAE,sBAAsBkB,OACxBlB,EAAE,eAAekB,OAEjBO,KAAKsjB,WAAW3R,KAAK,cAElBA,KAAK,WACJpT,EAAE,UAAUmB,OAEZK,EAAK4qB,WAAU,GAIfpsB,EAAE,2BAA2Bme,MAC7Bne,EAAE,gCAAgCme,MAAMle,GAAG,QAAS,WAChD,GAAIylB,GAAW1lB,EAAEyB,MAAM+C,KAAK,YACxBmhB,EAAW3lB,EAAEyB,MAAM+C,KAAK,MAG5BhD,GAAKikB,uBAAuBC,EAAUC,QAKlD0E,EAAaplB,UAAUyrB,gBAAkB,SAAUpL,GAC/CtlB,EAAEkF,KAAKogB,EAAQ,SAAUlgB,EAAGjB,GACxB,GAAIukB,GAAW1oB,EAAE,IAAMmE,EAAEiE,SAEzBsgB,GAAS5W,KAAK,gBAAiB3N,EAAE+C,MAAM1C,KAAK,WAAYL,EAAE+C,MAC1DwhB,EAAS5W,KAAK,iBAAkB3N,EAAEqhB,WAAWhhB,KAAK,YAAaL,EAAEqhB,WACjEkD,EAAS5W,KAAK,WAAY3N,EAAEiD,KAAK5C,KAAK,MAAOL,EAAEiD,KAE3CjD,EAAEqhB,UACFkD,EAASvnB,OAETunB,EAAS5W,KAAK,gBAAiB,OAK3CuY,EAAaplB,UAAU6oB,eAAiB,WAIpC9tB,EAAE,UAAUkB,OACZlB,EAAE,eAAemB,QAOrBkpB,EAAaplB,UAAU2oB,eAAiB,WACpC,GAAIpsB,GAAOC,KAEP2O,EAAWpQ,EAAEqQ,UASjB,OAPArQ,GAAE,kGAAkGG,YAAY,WAChHqB,EAAKivB,eAAerd,KAAK,WAErB5R,EAAKusB,eACL3d,EAASG,YAGNH,EAASI,WAGpB6Z,EAAaplB,UAAU8oB,aAAe,WAClC/tB,EAAE,kDAAkD8R,KAAK,MAAO,wDAAwDqM,MAAMhe,YAAY,kBAC1IH,EAAE,kDAAkD8R,KAAK,MAAO,wDAAwDqM,MAAMhe,YAAY,kBAC1IH,EAAE,kDAAkD8R,KAAK,MAAO,wDAAwDqM,MAAMhe,YAAY,kBAC1IH,EAAE,kDAAkD8R,KAAK,MAAO,wDAAwDqM,MAAMhe,YAAY,kBAC1IH,EAAE,mDAAmD8R,KAAK,MAAO,wDAAwDqM,MAAMhe,YAAY,kBAC3IH,EAAE,mDAAmD8R,KAAK,MAAO,wDAAwDqM,MAAMhe,YAAY,kBAC3IH,EAAE,mDAAmD8R,KAAK,MAAO,wDAAwDqM,MAAMhe,YAAY,kBAC3IH,EAAE,mDAAmD8R,KAAK,MAAO,wDAAwDqM,MAAMhe,YAAY,mBAG/IkqB,EAAaplB,UAAUsoB,gBAAkB,WACrC,GAAI/rB,GAAOC,KAGPkvB,EAAa3wB,EAAE,kDACf4wB,EAAY5wB,EAAE,kDACd6wB,EAAgB7wB,EAAE,kDAClB8wB,EAAe9wB,EAAE,kDACjB+wB,EAAe/wB,EAAE,mDACjBgxB,EAAehxB,EAAE,kDAGrB2wB,GAAW7e,KAAK,MAAO,2DAA2D5R,SAAS,kBAC3FywB,EAAWrkB,MAAM,WACbqkB,EAAW7e,KAAK,MAAO,kEACxB,WACC6e,EAAW7e,KAAK,MAAO,6DAE3B6e,EAAW1wB,GAAG,QAAS,WACnBkI,OAAOC,SAAWD,OAAOC,SAAS6oB,OAASpxB,KAAKgC,QAAQgP,OAAS,6CAKrE+f,EAAU9e,KAAK,MAAO,wDAAwD5R,SAAS,kBACvF0wB,EAAUtkB,MAAM,WACZskB,EAAU9e,KAAK,MAAO,+DACvB,WACC8e,EAAU9e,KAAK,MAAO,0DAE1B8e,EAAU3wB,GAAG,QAAS,WAClBD,EAAE,iBAAiBiW,UAEnBjW,EAAE,mFAAmFE,SAAS,QAE9FF,EAAE,cAAcK,OAAO,OAK3BwwB,EAAc/e,KAAK,MAAO,gEAAgE5R,SAAS,kBACnG2wB,EAAcvkB,MAAM,WAChBukB,EAAc/e,KAAK,MAAO,uEAC3B,WACC+e,EAAc/e,KAAK,MAAO,kEAE9B+e,EAAc5wB,GAAG,QAAS,WACtBD,EAAE,uCAAuCkB,OACzCM,EAAKkjB,WAAW,YAChBljB,EAAK6qB,aAAe,UAGpBrsB,EAAE,mFAAmFE,SAAS,QAG9FoQ,WAAW,WACPtQ,EAAE,SAASkB,OACXlB,EAAE,kGAAkGG,YAAY,YACjH,QAIP2wB,EAAahf,KAAK,MAAO,8DAA8D5R,SAAS,kBAChG4wB,EAAaxkB,MAAM,WACfwkB,EAAahf,KAAK,MAAO,qEAC1B,WACCgf,EAAahf,KAAK,MAAO,gEAE7Bgf,EAAa7wB,GAAG,QAAS,WACrBD,EAAE,uCAAuCkB,OACzCM,EAAKkjB,WAAW,iBAChBljB,EAAK6qB,aAAe,UAEpB7qB,EAAK0vB,UAAU,iBAGflxB,EAAE,mFAAmFE,SAAS,UAIlG6wB,EAAajf,KAAK,MAAO,gEAAgE5R,SAAS,kBAClG6wB,EAAazkB,MAAM,WACfykB,EAAajf,KAAK,MAAO,uEAC1B,WACCif,EAAajf,KAAK,MAAO,kEAE7Bif,EAAa9wB,GAAG,QAAS,WACrBuB,EAAKkjB,WAAW,iBAChBljB,EAAK6qB,aAAe,UAEpB7qB,EAAK0vB,UAAU,iBAGflxB,EAAE,mFAAmFE,SAAS,UAIlG8wB,EAAalf,KAAK,MAAO,8DAA8D5R,SAAS,kBAChG8wB,EAAa1kB,MAAM,WACf0kB,EAAalf,KAAK,MAAO,qEAC1B,WACCkf,EAAalf,KAAK,MAAO,gEAE7Bkf,EAAa/wB,GAAG,QAAS,WACrBuB,EAAKkjB,WAAW,iBAChBljB,EAAK6qB,aAAe,UAEpB7qB,EAAK0vB,UAAU,iBAGflxB,EAAE,mFAAmFE,SAAS,UAIlGF,EAAE,iHAAiHkB,OACnHlB,EAAE,mBAAmBkB,OAGrBlB,EAAE,2DAA2DkB,OAG7DlB,EAAE,aAAamB,OACfnB,EAAE,kGAAkGE,SAAS,YAGjHmqB,EAAaplB,UAAUksB,0BAA4B,SAAUC,GACzD3vB,KAAK2M,MAAM,WAAYgjB,EAAW,KAAM,EAExC,IAAIC,GAAe,IAAMD,EAAY,MAGrCpxB,GAAE,iHAAiHkB,OACnHoP,WAAW,WACPtQ,EAAE,0CAA0CoG,UAAU,IACvD,GAGHpG,EAAE,aAAakB,OAGflB,EAAE,mBAAmBmB,OAGrBnB,EAAEqxB,GAAclwB,QAGpBkpB,EAAaplB,UAAUisB,UAAY,SAAUI,GAC3B,kBAAVA,GACAtxB,EAAE,oBAAoB8R,KAAK,MAAO,4DAClC9R,EAAE,oBAAoB8R,KAAK,MAAO,gEAClC9R,EAAE,oBAAoB8R,KAAK,MAAO,gEAClC9R,EAAE,oBAAoB8R,KAAK,MAAO,gEAClC9R,EAAE,oBAAoB8R,KAAK,MAAO,gEAClC9R,EAAE,oBAAoB8R,KAAK,MAAO,gEAClC9R,EAAE,oBAAoB8R,KAAK,MAAO,gEAClC9R,EAAE,oBAAoB8R,KAAK,MAAO,gEAClC9R,EAAE,oBAAoB8R,KAAK,MAAO,gEAClC9R,EAAE,oBAAoB8R,KAAK,MAAO,gEAClC9R,EAAE,qBAAqB8R,KAAK,MAAO,kEAClB,kBAAVwf,GACPtxB,EAAE,oBAAoB8R,KAAK,MAAO,4DAClC9R,EAAE,oBAAoB8R,KAAK,MAAO,gEAClC9R,EAAE,oBAAoB8R,KAAK,MAAO,gEAClC9R,EAAE,oBAAoB8R,KAAK,MAAO,gEAClC9R,EAAE,oBAAoB8R,KAAK,MAAO,gEAClC9R,EAAE,oBAAoB8R,KAAK,MAAO,gEAClC9R,EAAE,oBAAoB8R,KAAK,MAAO,gEAClC9R,EAAE,oBAAoB8R,KAAK,MAAO,gEAClC9R,EAAE,oBAAoB8R,KAAK,MAAO,gEAClC9R,EAAE,oBAAoB8R,KAAK,MAAO,iEACjB,kBAAVwf,IACPtxB,EAAE,oBAAoB8R,KAAK,MAAO,4DAClC9R,EAAE,oBAAoB8R,KAAK,MAAO,gEAClC9R,EAAE,oBAAoB8R,KAAK,MAAO,gEAClC9R,EAAE,oBAAoB8R,KAAK,MAAO,gEAClC9R,EAAE,oBAAoB8R,KAAK,MAAO,gEAClC9R,EAAE,oBAAoB8R,KAAK,MAAO,gEAClC9R,EAAE,oBAAoB8R,KAAK,MAAO,gEAClC9R,EAAE,oBAAoB8R,KAAK,MAAO,gEAClC9R,EAAE,oBAAoB8R,KAAK,MAAO,gEAClC9R,EAAE,oBAAoB8R,KAAK,MAAO,gEAClC9R,EAAE,qBAAqB8R,KAAK,MAAO,kEAGvC9R,EAAE,SAASkB,OACXlB,EAAE,aAAakB,OACflB,EAAE,oHAAoHkB,OACtHlB,EAAE,IAAMsxB,EAAQ,qBAAqBnwB,OACrCnB,EAAE,aAAesxB,GAAOnwB,QAG5BkpB,EAAaplB,UAAUssB,cAAgB,SAAUD,EAAOriB,GACpDxN,KAAK2M,MAAMkjB,EAAOriB,EAAM,KAAM,GAC9BjP,EAAE,0CAA0CmB,OAC5CnB,EAAE,IAAMsxB,EAAQ,qBAAqBpwB,OACrClB,EAAE,IAAMsxB,EAAQ,UAAUnwB,MAE1B,IAAIqwB,GAAc,yDAA2DF,EAAMG,OAAOH,EAAM5wB,OAAS,GAAK,QAG1GgxB,EAASF,EAAcviB,EAFR,OAGf0iB,EAAW3xB,EAAE,IAAMsxB,EAAQ,uCAC3BM,EAAc5xB,EAAE,IAAMsxB,EAAQ,6CAC9BO,EAAYF,EAAS7f,KAAK,kBAEjB,KAAT7C,GAAYjP,EAAE,sBAAsBkB,OACpC2wB,GAAa5iB,GAAMjP,EAAE,sBAAsBkB,OAE/CywB,EAAS7f,KAAK,oBAAqB7C,EAAKyB,YACxCkhB,EAAY9f,KAAK,MAAO4f,GAExBphB,WAAW,WACPtQ,EAAE,IAAMsxB,EAAQ,0BAA0BQ,QAC1C9xB,EAAE,iBAAiBoG,UAAU,IAC9B,IAGPikB,EAAaplB,UAAU8nB,eAAiB,SAAUuE,GAC9C,GAAI9vB,GAAOC,KAEPkwB,EAAW3xB,EAAE,IAAMsxB,EAAQ,uCAC3BS,EAAcJ,EAAS7f,KAAK,qBAC5BkgB,EAAkB5iB,SAAS2iB,GAAe,CAC9BJ,GAAS7f,KAAK,oBAEbigB,GAEjBvwB,EAAK+vB,cAAcD,EAAOU,IAG9B3H,EAAaplB,UAAU6nB,mBAAqB,SAAUwE,GAClD,GAAI9vB,GAAOC,KAEPkwB,EAAW3xB,EAAE,IAAMsxB,EAAQ,uCAC3BS,EAAcJ,EAAS7f,KAAK,qBAC5BmgB,EAAsB7iB,SAAS2iB,GAAe,CAE/B,IAAfA,GAEJvwB,EAAK+vB,cAAcD,EAAOW,IAKvB5H,KAGXxqB,KAAKyuB,uBAA0B,WAE3B,GAAIA,GAAyB,WACzB,GAAI9sB,GAAOC,IAEXzB,GAAE,WAAW+F,SACb/F,EAAE,sBAAsBmB,OAExBnB,EAAE,0BAA0BkyB,OAAO,WAC3BlyB,EAAE,uBAAuBU,OAAS,EAClCV,EAAE,aAAamB,OAEfnB,EAAE,aAAakB,OAGflB,EAAE,uBAAuBU,OAAS,EAClCV,EAAE,aAAamB,OAEfnB,EAAE,aAAakB,OAGflB,EAAE,uBAAuBU,OAAS,EAClCV,EAAE,aAAamB,OAEfnB,EAAE,aAAakB,SAKvBrB,KAAKkB,SACDoG,IAAK,oBACLD,KAAM,QACPlG,KAAK,SAAU4Q,GACTA,EAAE0d,MA+BoB,MAAnB1d,EAAE0d,KAAK1nB,UACPpG,EAAK2wB,eACLnyB,EAAE,uBAAuB8R,KAAK,WAAW,IACf,MAAnBF,EAAE0d,KAAK1nB,UACdpG,EAAK4wB,eACLpyB,EAAE,uBAAuB8R,KAAK,WAAW,IACf,MAAnBF,EAAE0d,KAAK1nB,WACdpG,EAAK6wB,eACL3D,SAASC,eAAe,gBAAgBljB,MAAQmG,EAAE0d,KAAKxuB,aACvD4tB,SAASC,eAAe,eAAeljB,MAAQmG,EAAE0d,KAAKzuB,YACtDb,EAAE,eAAe8R,KAAK,WAAW,IAErCtQ,EAAK8wB,2BA1CLtyB,EAAE,UAAUqe,IAAI,QAAS,WACjBre,EAAE,kBAAkBU,OAAS,IAE7Bb,KAAKkB,SACDoG,IAAK,oBACLD,KAAM,OACN1C,MAAQoD,SAAU,QACnB5G,OACHQ,EAAK2wB,eACL3wB,EAAK8wB,4BAIbtyB,EAAE,UAAUqe,IAAI,QAAS,WACjBre,EAAE,kBAAkBU,OAAS,IAC7Bb,KAAKkB,SACDoG,IAAK,oBACLD,KAAM,OACN1C,MAAQoD,SAAU,QACnB5G,OACHQ,EAAK4wB,eACL5wB,EAAK8wB,4BAIbtyB,EAAE,sBAAsBqe,IAAI,QAAS,WACjC7c,EAAK+wB,gBAyLrB,OAnKAjE,GAAuBrpB,UAAUktB,aAAe,WAC5CzD,SAASC,eAAe,SAAS6D,UAAW,EAC5CxyB,EAAE,eAAe4E,SAASmB,SAC1B/F,EAAE,eAAe4E,SAASmB,SAC1B/F,EAAE,aAAamB,OACfnB,EAAE,aAAamB,QAGnBmtB,EAAuBrpB,UAAUmtB,aAAe,WAC5C1D,SAASC,eAAe,SAAS6D,UAAW,EAC5CxyB,EAAE,eAAe4E,SAASmB,SAC1B/F,EAAE,eAAe4E,SAASmB,SAC1B/F,EAAE,aAAamB,OACfnB,EAAE,aAAamB,QAGnBmtB,EAAuBrpB,UAAUotB,aAAe,WAC5C3D,SAASC,eAAe,SAAS6D,UAAW,EAC5CxyB,EAAE,eAAe4E,SAASmB,SAC1B/F,EAAE,eAAe4E,SAASmB,SAC1B/F,EAAE,+BAA+B8R,KAAK,YAAY,GAClD9R,EAAE,sBAAsBkB,OACxBlB,EAAE,aAAamB,QAGnBmtB,EAAuBrpB,UAAUstB,SAAW,WACxC,GAAI/wB,GAAOC,IACPD,GAAKixB,uBACLjxB,EAAK6wB,eAELxyB,KAAKkB,SACDoG,IAAK,oBACLD,KAAM,OACN1C,MAAQoD,SAAU,KAAM/G,YAAa6tB,SAASC,eAAe,eAAeljB,MAAO3K,aAAc4tB,SAASC,eAAe,gBAAgBljB,SAC1IzK,OAEHQ,EAAK8wB,0BAELtyB,EAAE,sBAAsBqe,IAAI,QAAS,WACjC7c,EAAK+wB,cAMjBjE,EAAuBrpB,UAAUwtB,oBAAsB,WAEnD,GAAIC,GAAS,EACTC,EAAK,gDAgBT,OAd+D,OAA3DjE,SAASC,eAAe,gBAAgBljB,MAAMmnB,MAAMD,IACpDD,GAAU,EACVhE,SAASC,eAAe,gBAAgBpC,MAAMsG,OAAS,iBAEvDnE,SAASC,eAAe,gBAAgBpC,MAAMsG,OAAS,GAGP,IAAhDnE,SAASC,eAAe,eAAeljB,OACvCinB,GAAU,EACVhE,SAASC,eAAe,eAAepC,MAAMsG,OAAS,iBAEtDnE,SAASC,eAAe,eAAepC,MAAMsG,OAAS,KAGtDH,EAAS,IAOjBpE,EAAuBrpB,UAAUqtB,uBAAyB,WACtD,GAAI9wB,GAAOC,IAEX5B,MAAKkB,SACDoG,IAAK,0BACLD,KAAM,QACPlG,KAAK,SAAU4Q,GAEVA,EAAEmZ,UACF/qB,EAAE4R,EAAEmZ,SAAS7lB,KAAK,WACdlF,EAAE,qBAAqByH,OAAO,OAAShG,KAAKQ,KAAO,IAAMR,KAAKqxB,KAAO,KAAOrxB,KAAKsxB,MAAQ,WAGzFnhB,EAAEmZ,QAAQrqB,OAAS,EACnBV,EAAE,mBAAmBkB,OACM,GAApB0Q,EAAEmZ,QAAQrqB,QACjBV,EAAE,qBAAqBkB,QAI/BlB,EAAE,kCAAkCmB,OAEpCnB,EAAE,qBAAqBC,GAAG,QAAS,WAC/BuB,EAAKwxB,8BAMjB1E,EAAuBrpB,UAAU+tB,uBAAyB,WAC3CvxB,KAEFwxB,4BACLpzB,KAAKkB,SACDoG,IAAK,0BACLD,KAAM,OACN1C,MAAQ8mB,OAAQoD,SAASC,eAAe,cAAcljB,MAAOqnB,KAAMpE,SAASC,eAAe,cAAcljB,MAAOsnB,MAAOrE,SAASC,eAAe,eAAeljB,SAC/JzK,KAAK,SAAU4Q,GAEVA,EAAEmZ,UACF/qB,EAAE,wBAAwB+F,SAC1B/F,EAAE4R,EAAEmZ,SAAS7lB,KAAK,WACdlF,EAAE,qBAAqByH,OAAO,OAAShG,KAAKQ,KAAO,IAAMR,KAAKqxB,KAAO,KAAOrxB,KAAKsxB,MAAQ,WAGzFnhB,EAAEmZ,QAAQrqB,OAAS,GACnBV,EAAE,mBAAmBkB,OAGzBlB,EAAE,qBAAqBmB,OAEvButB,SAASC,eAAe,cAAcljB,MAAQ,GAC9CijB,SAASC,eAAe,cAAcljB,MAAQ,GAC9CijB,SAASC,eAAe,eAAeljB,MAAQ,OAO/D6iB,EAAuBrpB,UAAUguB,yBAA2B,WAExD,GAAIP,GAAS,CAuBb,OArBmD,IAA/ChE,SAASC,eAAe,cAAcljB,OACtCinB,GAAU,EACVhE,SAASC,eAAe,cAAcpC,MAAMsG,OAAS,iBAErDnE,SAASC,eAAe,cAAcpC,MAAMsG,OAAS,GAGN,IAA/CnE,SAASC,eAAe,cAAcljB,OACtCinB,GAAU,EACVhE,SAASC,eAAe,cAAcpC,MAAMsG,OAAS,iBAErDnE,SAASC,eAAe,cAAcpC,MAAMsG,OAAS,GAGL,IAAhDnE,SAASC,eAAe,eAAeljB,OACvCinB,GAAU;uDACVhE,SAASC,eAAe,eAAepC,MAAMsG,OAAS,iBAEtDnE,SAASC,eAAe,eAAepC,MAAMsG,OAAS,KAGtDH,EAAS,IAOVpE;AC/hDX,GAAIzuB,MAAOA,QAEXA,MAAKqzB,YAAe,WAChB,GAAIzwB,IACA6hB,KAAM,UAGN4O,EAAc,SAASrxB,GACvB,GAAIL,GAAOC,IAEXA,MAAKI,QAAU7B,EAAE2C,UAAWF,EAAgBZ,GAC5ChC,KAAKmkB,MAAM7D,KAAK1e,KAAMA,KAAKI,SAE3BJ,KAAKkjB,eACL3kB,EAAE,UAAUmB,OACZM,KAAKmqB,YAELnqB,KAAKyO,MAAM,KAAMkD,KAAK,WAClB,MAAO5R,GAAKujB,aACb3R,KAAK,WACJ,GAAK5R,EAAKK,QAAQyoB,WAGlB,MAAO9oB,GAAK2xB,eAAe,WAAY,EAAG,IAFtC3xB,GAAK4xB,cAIVhgB,KAAK,WACJ,MAAO5R,GAAK2xB,eAAe,WAAY,EAAG,OAC3C/f,KAAK,WAEJ,MADApT,GAAE,YAAYkB,OACPM,EAAK2xB,eAAe,sBAAuB,EAAG,OACtD/f,KAAK,WACJpT,EAAE,2BAA2Bme,MAAME,IAAI,mBAAoB,SAASla,GAKhE,MAJA3C,GAAK4xB,YAELjvB,EAAE2hB,kBACF3hB,EAAEC,kBACK,MAyZnB,OApZA8uB,GAAYjuB,UAAY4mB,OAAOC,OAAOjsB,KAAKmkB,MAAM/e,WACjDiuB,EAAYjuB,UAAU8mB,YAAcmH,EAEpCA,EAAYjuB,UAAUkuB,eAAiB,SAAS5hB,EAASC,EAAS+M,GAC9D,GAAInO,GAAWpQ,EAAEqQ,UAOjB,OANArQ,GAAEuR,GAAShI,IAAI,UAAWiI,GAE1B/P,KAAKyO,MAAMqO,GAAUnL,KAAK,WACtBhD,EAASG,YAGNH,EAASI,WAGpB0iB,EAAYjuB,UAAU2mB,UAAY,WAC9B,GAAIpqB,GAAOC,IAEXzB,GAAE,qBAAqBC,GAAG,QAAS,WAAauB,EAAK6xB,wBACrDrzB,EAAE,gBAAgBC,GAAG,QAAS,WAC1BuB,EAAK8xB,gBAETtzB,EAAE,gBAAgBC,GAAG,QAAS,WAAauB,EAAK4jB,eAChDplB,EAAE,gBAAgBC,GAAG,QAAS,WAAauB,EAAK4xB,cAGhD3xB,KAAKuU,OAASrU,GAAGU,eACjBV,GAAGqD,cAAcxD,EAAMxB,EAAE,kBAAkB,KAO/CkzB,EAAYjuB,UAAUmuB,UAAY,WAC9BpzB,EAAE,+BAA+BmB,OACjCM,KAAKka,WAAW,QAAS,SAO7BuX,EAAYjuB,UAAUouB,oBAAsB,WACxC,GAAI7xB,GAAOC,IACXA,MAAKka,WAAW,kBAAmB,kBAEnCla,KAAK8iB,gBAAgB,gBAErBvkB,EAAE,kCAAkCme,MAAMle,GAAG,QAAS,WAElD,OADcD,EAAEyB,MAAM+C,KAAK,QAEvB,IAAK,UACDhD,EAAKijB,iBAAiB,WACtBjjB,EAAK+xB,cACL,MACJ,KAAK,YACD/xB,EAAKijB,iBAAiB,aACtBjjB,EAAKgyB,gBACL,MACJ,KAAK,cACDhyB,EAAKijB,iBAAiB,eACtBjjB,EAAKiyB,kBACL,MACJ,KAAK,QACDjyB,EAAKijB,iBAAiB,SACtBjjB,EAAKkyB,iBAUrBR,EAAYjuB,UAAUsuB,aAAe,WACjC,GAAI/xB,GAAOC,IACXzB,GAAE,YAAYme,MAAME,IAAI,mBAAoB,MAAO,SAASla,GAKxD,MAJA3C,GAAK6xB,sBAELlvB,EAAE2hB,kBACF3hB,EAAEC,kBACK,IAEX3C,KAAKka,WAAW,WAAY,WAAWvI,KAAK,WAExC,MADApT,GAAE,YAAY6E,WAAW3D,OAClBlB,EAAEmT,KAAK3R,EAAKwtB,uBAAwBxtB,EAAKutB,wBAAyBvtB,EAAKsjB,cAC/E1R,KAAK,SAASsX,GACb,MAAO1qB,GAAEmT,KAAKuX,EAASlpB,EAAKujB,cAC7B3R,KAAK,SAASsX,GACb1qB,EAAE,YAAY6E,WAAW1D,UAIjC+xB,EAAYjuB,UAAU+pB,qBAAuB,WACzC,GAAI5e,GAAWpQ,EAAEqQ,UAIjB,OAFAD,GAASG,UAEFH,EAASI,WAGpB0iB,EAAYjuB,UAAU0uB,WAAa,WAC/B,MAAO9zB,MAAKkB,SAAUoG,IAAK,0BAG/B+rB,EAAYjuB,UAAUgqB,yBAA2B,WAC7C,MAAOpvB,MAAKkB,SAAUoG,IAAK,sBAG/B+rB,EAAYjuB,UAAU8pB,sBAAwB,WAE1C/uB,EAAEmT,KAAK1R,KAAKkyB,aAAclyB,KAAKwtB,2BAA4BxtB,KAAKutB,wBAAwB5b,KAAK,SAAU+b,EAAYC,GAC/GztB,GAAGqD,eAAgBwlB,aAAc4E,EAAe,GAAGzD,YAAajB,QAASyE,EAAW,GAAGG,MAAQtvB,EAAE,YAAY,OAQrHkzB,EAAYjuB,UAAUuuB,eAAiB,WACnC,GAAIhyB,GAAOC,IACXzB,GAAE,cAAcme,MAAME,IAAI,mBAAoB,MAAO,SAASla,GAK1D,MAJA3C,GAAK6xB,sBAELlvB,EAAE2hB,kBACF3hB,EAAEC,kBACK,IAEX3C,KAAKka,WAAW,aAAc,aAAavI,KAAK,WAE5C,MADApT,GAAE,cAAc6E,WAAW3D,OACpBlB,EAAEmT,KAAK3R,EAAKwtB,uBAAwBxtB,EAAKuuB,qBAAsBvuB,EAAKsjB,cAC5E1R,KAAK,SAAS8X,GACb,MAAOlrB,GAAEmT,KAAK+X,EAAW1pB,EAAKujB,cAC/B3R,KAAK,SAAS8X,GACblrB,EAAE,cAAc6E,WAAW1D,UAInC+xB,EAAYjuB,UAAU4qB,kBAAoB,WACtC,GAAIzf,GAAWpQ,EAAEqQ,UAIjB,OAFAD,GAASG,UAEFH,EAASI,WAGpB0iB,EAAYjuB,UAAU0qB,eAAiB,WACnC,MAAO9vB,MAAKkB,SAAUoG,IAAK,uBAG/B+rB,EAAYjuB,UAAU2qB,gBAAkB,WACpC,MAAO/vB,MAAKkB,SAAUoG,IAAK,qBAG/B+rB,EAAYjuB,UAAU4qB,kBAAoB,WACtC,MAAOhwB,MAAKkB,SAAUoG,IAAK,qBAG/B+rB,EAAYjuB,UAAU8qB,mBAAqB,WAEvC/vB,EAAEmT,KAAK1R,KAAKmuB,kBAAmBnuB,KAAKkuB,iBAAkBluB,KAAKouB,oBAAqBpuB,KAAKutB,wBAAwB5b,KAAK,SAAUyX,EAAcmF,EAAa/E,GACnJtpB,GAAGqD,eAAgB6lB,aAAcA,EAAa,GAAGyE,KAAMxE,QAASkF,EAAY,GAAGV,KAAMpE,UAAWD,EAAe,GAAGC,WAAalrB,EAAE,cAAc,OAOvJkzB,EAAYjuB,UAAUwuB,iBAAmB,WACrC,GAAIjyB,GAAOC,IAEXzB,GAAE,gBAAgBme,MAAME,IAAI,mBAAoB,MAAO,SAASla,GAK5D,MAJA3C,GAAK6xB,sBAELlvB,EAAE2hB,kBACF3hB,EAAEC,kBACK,IAEX3C,KAAKka,WAAW,eAAgB,eAAevI,KAAK,WAEhD,MADApT,GAAE,gBAAgB6E,WAAW3D,OACtBlB,EAAEmT,KAAK3R,EAAKgvB,sBAAuBhvB,EAAK+uB,uBAAwB/uB,EAAKsjB,cAC7E1R,KAAK,SAASuY,GACb,MAAO3rB,GAAEmT,KAAKwY,EAAanqB,EAAKujB,cACjC3R,KAAK,SAASuY,GACb3rB,EAAE,gBAAgB6E,WAAW1D,UAIrC+xB,EAAYjuB,UAAUurB,oBAAsB,WACxC,GAAIpgB,GAAWpQ,EAAEqQ,UAIjB,OAFAD,GAASG,UAEFH,EAASI,WAGpB0iB,EAAYjuB,UAAUurB,oBAAsB,WACxC,MAAO3wB,MAAKkB,SAAUoG,IAAK,4BAG/B+rB,EAAYjuB,UAAUsrB,qBAAuB,WAEzCvwB,EAAEmT,KAAK1R,KAAKmuB,kBAAmBnuB,KAAK+uB,sBAAuB/uB,KAAKkuB,iBAAkBluB,KAAKutB,wBAAwB5b,KAAK,SAAUyX,EAAca,EAAkBsE,GAC1JruB,GAAGqD,eAAgB6lB,aAAcA,EAAa,GAAGyE,KAAMxE,QAASkF,EAAY,GAAGV,KAAM3D,YAAaD,EAAiB,GAAGC,aAAe3rB,EAAE,gBAAgB,OAQ/JkzB,EAAYjuB,UAAUyuB,WAAa,WAC/B,GAAIlyB,GAAOC,IACXzB,GAAE,UAAUme,MAAME,IAAI,mBAAoB,YAAa,SAASla,GAK5D,MAJA3C,GAAK6xB,sBAELlvB,EAAE2hB,kBACF3hB,EAAEC,kBACK,IAEX3C,KAAKka,WAAW,SAAU,SAASvI,KAAK,WAEpC,MADApT,GAAE,UAAUkB,OACLlB,EAAEmT,KAAK3R,EAAKoyB,cAAepyB,EAAKsjB,cACxC1R,KAAK,SAASygB,GACb,MAAO7zB,GAAEmT,KAAK0gB,EAAOryB,EAAKujB,cAC3B3R,KAAK,SAASygB,GACb7zB,EAAE,UAAUmB,UAIpB+xB,EAAYjuB,UAAU2uB,YAAc,WAChC,GAAIpyB,GAAOC,KACP2O,EAAWpQ,EAAEqQ,UAmBjB,OAjBA7O,GAAKmyB,aAAa3yB,KAAK,SAAU4Q,GAC7B5R,EAAE,yBAAyByJ,KAAKmI,EAAE0d,KAAKG,gBACvCzvB,EAAE,oBAAoByJ,KAAKmI,EAAE0d,KAAKwE,iBAE9BliB,EAAE0d,KAAKwE,gBAAkB,EAEzB9zB,EAAE,eAAeme,MAAME,IAAI,aAAc,WACrC7c,EAAK+tB,uBAITvvB,EAAE,eAAekB,OAGrBkP,EAASG,YAGNH,EAASI,WAGpB0iB,EAAYjuB,UAAUsqB,mBAAqB,WACvC,GAAInf,GAAWpQ,EAAEqQ,WACb7O,EAAOC,IAwBX,OAtBA5B,MAAKkB,SACDoG,IAAK,sBACNnG,KAAK,SAAU4Q,GACVA,EAAE0d,OAGFtvB,EAAE,yBAAyByJ,KAAK,IAAMmI,EAAE0d,KAAKE,eAC7Clf,WAAW,WAActQ,EAAE,yBAAyByJ,KAAKmI,EAAE0d,KAAKG,iBAAoB,KACpFzvB,EAAE,oBAAoByJ,KAAKmI,EAAE0d,KAAKI,iBAG/B9d,EAAE0d,KAAKI,gBAAkB,GAExB1vB,EAAE,eAAeme,MAAME,IAAI,aAAc,WACrC7c,EAAK+tB,wBAKjBnf,EAASG,YAGNH,EAASI,WAOpB0iB,EAAYjuB,UAAUsgB,eAAiB,SAAUD,GAC7C,GAAI9jB,GAAOC,IAEXA,MAAK8iB,gBAAgB,QAErB,IAAIwP,GAAMzxB,OAAOyxB,MACbC,EAAeD,EAAIE,IAAIF,EAAIG,SAAW,GAAK,EAAI,EAAG,QAAQC,YAAc,EAAK,CACjFn0B,GAAE,gBAAgB8R,KAAK,MAAO,oDAAsDkiB,EAAc,QAElGvyB,KAAKivB,gBAAgBpL,GACrBtlB,EAAEmT,KAAK1R,KAAKsjB,YAAY3R,KAAK,WACzBpT,EAAE,UAAU6E,WAAW1D,OAEvBnB,EAAE,gBAAgBuJ,IAAI,OAAQvJ,EAAE0uB,UAAU1mB,QAAU,EAAIhI,EAAE,gBAAgBgI,QAAU,GACpFhI,EAAE,4BAA4Bme,MAC9Bne,EAAE,wDAAwDme,MAAME,IAAI,mBAAoB,SAASla,GAC7F,GAAIuhB,GAAW1lB,EAAEyB,MAAM+C,KAAK,YACxBmhB,EAAW3lB,EAAEyB,MAAM+C,KAAK,MAM5B,OAJAhD,GAAKikB,uBAAuBC,EAAUC,GAEtCxhB,EAAE2hB,kBACF3hB,EAAEC,kBACK,OAKnB8uB,EAAYjuB,UAAUyrB,gBAAkB,SAAUpL,GAC9CtlB,EAAEkF,KAAKogB,EAAQ,SAAUlgB,EAAGjB,GACxB,GAAIukB,GAAW1oB,EAAE,IAAMmE,EAAEiE,SAEzBsgB,GAAS5W,KAAK,gBAAiB3N,EAAE+C,MAAM1C,KAAK,WAAYL,EAAE+C,MAC1DwhB,EAAS5W,KAAK,iBAAkB3N,EAAEqhB,WAAWhhB,KAAK,YAAaL,EAAEqhB,WACjEkD,EAAS5W,KAAK,WAAY3N,EAAEiD,KAAK5C,KAAK,MAAOL,EAAEiD,MAE3B,IAAhBjD,EAAEqhB,UACFkD,EAASnf,IAAI,OAAQ,IAErBmf,EAASnf,IAAI,OAAQ,kBAUjC2pB,EAAYjuB,UAAUquB,YAAc,WAChC,GAAI9xB,GAAOC,IAEXzB,GAAE,SAASkB,OAEXlB,EAAEmT,KAAK3R,EAAK0R,gBAAiB1R,EAAKsjB,YAAY1R,KAAK,SAAS5O,GACxD,MAAOxE,GAAEmT,KAAK3O,EAAMhD,EAAKujB,cAC1B3R,KAAK,SAAU5O,GACd,GAAIwR,GAASxR,EAAK,EAClBhD,GAAKwU,OAAOA,GAGZhW,EAAE,+BAA+BkB,OACjClB,EAAE,wEAAwEkB,OAE1EM,EAAKma,WAAW,iBAAkB,iBAAiBvI,KAAK,WACpD5R,EAAK+iB,gBAAgB,eAKjC2O,EAAYjuB,UAAUiO,cAAgB,WAClC,MAAOrT,MAAKkB,SAAUoG,IAAK,kBAG/B+rB,EAAYjuB,UAAUmvB,YAAc,WAChC3yB,KAAK2xB,aAGTF,EAAYjuB,UAAUovB,gBAAkB,WACpC,GAAIhmB,GAAQ,cACPrO,GAAE,IAAMqO,GAAO7N,GAAG,cACnBR,EAAE,yDAAyDkB,OAC3DO,KAAK+iB,YAAYnW,GACjBrO,EAAE,IAAMqO,GAAOlN,SAIvB+xB,EAAYjuB,UAAUqvB,kBAAoB,WACtC,GAAIjmB,GAAQ,gBACPrO,GAAE,IAAMqO,GAAO7N,GAAG,cACnBR,EAAE,uDAAuDkB,OACzDO,KAAK+iB,YAAYnW,GACjBrO,EAAE,IAAMqO,GAAOlN,SAIvB+xB,EAAYjuB,UAAUsvB,oBAAsB,WACxC,GAAIlmB,GAAQ,kBACPrO,GAAE,IAAMqO,GAAO7N,GAAG,cACnBR,EAAE,qDAAqDkB,OACvDO,KAAK+iB,YAAYnW,GACjBrO,EAAE,IAAMqO,GAAOlN,SAIvB+xB,EAAYjuB,UAAUuvB,oBAAsB,WACxC,GAAInmB,GAAQ,kBACPrO,GAAE,IAAMqO,GAAO7N,GAAG,cACnBR,EAAE,qDAAqDkB,OACvDO,KAAK+iB,YAAYnW,GACjBrO,EAAE,IAAMqO,GAAOlN,SAKhB+xB","file":"asmo.js","sourcesContent":["IREP.FSRegister = (function (){\r\n\r\n var init = function(){\r\n $(\"#manager\").on(\"click\", function () {\r\n $(\"#manager\").addClass(\"completeCheck\");\r\n $(\"#authorized\").removeClass(\"completeCheck\");\r\n $(\"#managerInfo\").slideUp(250);\r\n $(\"#managerSubmit\").fadeIn(250);\r\n });\r\n $(\"#authorized\").on(\"click\", function () {\r\n $(\"#authorized\").addClass(\"completeCheck\");\r\n $(\"#manager\").removeClass(\"completeCheck\");\r\n $(\"#managerInfo\").slideDown(250);\r\n $(\"#managerSubmit\").fadeIn(250);\r\n });\r\n $(\"#managerSubmit\").on(\"click\", function () { submitManager();});\r\n };\r\n\r\n var submitManager = function () {\r\n if ($(\"#managerInfo\").is(\":visible\")) {\r\n if ($(\"#managerName\").val().length > 0) {\r\n $(\"#managerName\").removeClass(\"error\");\r\n if ($(\"#managerEmail\").val().length > 0) {\r\n $(\"#managerEmail\").removeClass(\"error\");\r\n var params = { isManager: false, managerName: $(\"#managerName\").val(), managerEmail: $(\"#managerEmail\").val() };\r\n IREP.callApi(\"fivestar/managerinfo\", \"POST\", params).done(function () {\r\n });\r\n showTY();\r\n } else {\r\n $(\"#managerEmail\").addClass(\"error\");\r\n }\r\n } else {\r\n $(\"#managerName\").addClass(\"error\");\r\n }\r\n } else {\r\n var params = { isManager: true, managerName: '', managerEmail: '' };\r\n IREP.callApi(\"fivestar/managerinfo\", \"POST\", params).done(function () {\r\n });\r\n showTY();\r\n }\r\n };\r\n\r\n var showTY = function () {\r\n $(\".registration, #managerInfo, #managerSubmit\").hide();\r\n $(\"#submitThanks\").show();\r\n }\r\n\r\n return {\r\n init:init\r\n };\r\n})();\r\n\r\n","IREP.FiveStarHub = (function (global, $) {\r\n var OnlineParticipant = function (avatar) {\r\n var self = this;\r\n\r\n this.avatar = avatar;\r\n this.avatarImage = ko.computed(function () {\r\n return IREP.options.apiUrl + \"participant/avatar/\" + self.avatar;\r\n });\r\n };\r\n\r\n var Comment = function (id, name, text, createdDate) {\r\n var self = this;\r\n this.id = id;\r\n this.name = name;\r\n this.text = text;\r\n this.createdDate = createdDate;\r\n this.dateText = ko.observable(moment(createdDate).fromNow());\r\n\r\n setInterval(function () {\r\n self.dateText(moment(self.createdDate).fromNow())\r\n }, 10000);\r\n };\r\n\r\n var FiveStarHub = function (options) {\r\n var self = this;\r\n\r\n var defaultOptions = {\r\n paxuid: ''\r\n };\r\n\r\n this.options = $.extend(this.options, defaultOptions, options);\r\n this.$chat = $('#FiveStarMain .stream .chat');\r\n\r\n this.onlineParticipants = ko.observableArray([]);\r\n this.comments = ko.observableArray([]);\r\n\r\n this.onlineParticipants.extend({ rateLimit: 50 });\r\n //this.comments.extend({ rateLimit: 50 });\r\n\r\n this.hub = $.connection.fiveStarHub;\r\n this.server = this.hub.server;\r\n this.hub.client.broadcastMessage = function (message) {\r\n self.broadcastMessage(message);\r\n };\r\n this.hub.client.connected = function (message) {\r\n self.connected(message);\r\n };\r\n this.hub.client.participantConnected = function (message) {\r\n self.participantConnected(message);\r\n };\r\n this.hub.client.participantDisconnected = function (message) {\r\n self.participantDisconnected(message);\r\n };\r\n this.hub.client.flagMessage = function (message) {\r\n self.flagMessage(false, message.CommentID);\r\n };\r\n\r\n $.connection.hub.qs = { paxuid: options.paxuid }\r\n $.connection.hub.start({}, function (a, b, c) {\r\n $('#FiveStarMain .stream').find('a').on('click', function (e) {\r\n e.preventDefault();\r\n self.sendMessage($(this).siblings('input').val());\r\n $(this).siblings('input').val('')\r\n });\r\n\r\n $('#FiveStarMain .stream').on('click', '.flag', function (e) {\r\n var commentID = $(this).data('commentid');\r\n self.flagMessage(true, commentID);\r\n });\r\n\r\n $('#FiveStarMain .stream input').on('keypress', function (e) {\r\n if (e.which === 13) {\r\n self.sendMessage($(this).val());\r\n $(this).val('')\r\n }\r\n });\r\n\r\n self.currentWrapperPosition = 0;\r\n $('#FiveStarMain .stream .prev').on('click', function (e) {\r\n var wrapper = $(this).parent().find('.wrapper');\r\n if (wrapper.children().length > 10 && self.currentWrapperPosition + 10 < wrapper.children().length) {\r\n self.currentWrapperPosition++;\r\n wrapper.animate({ left: \"-=85px\" });\r\n }\r\n });\r\n\r\n $('#FiveStarMain .stream .next').on('click', function (e) {\r\n var wrapper = $(this).parent().find('.wrapper');\r\n if (wrapper.children().length > 10 && self.currentWrapperPosition > 0) {\r\n self.currentWrapperPosition--;\r\n wrapper.animate({ left: \"+=85px\" });\r\n }\r\n });\r\n });\r\n\r\n ko.applyBindings(this, $('#FiveStarMain .stream')[0]);\r\n };\r\n\r\n //FiveStarHub.prototype = new IREP.Hub();\r\n //FiveStarHub.prototype.constructor = FiveStarHub;\r\n\r\n FiveStarHub.prototype.sendMessage = function (message) {\r\n var self = this;\r\n\r\n self.server.message(message);\r\n };\r\n\r\n FiveStarHub.prototype.connected = function (message) {\r\n var self = this;\r\n\r\n $.each(message.OnlineParticipants, function (i, e) {\r\n self.onlineParticipants.push(new OnlineParticipant(e));\r\n });\r\n\r\n $.each(message.LatestComments, function (i, e) {\r\n self.comments.push(new Comment(e.ID, e.Name, e.Text, e.CreatedDate));\r\n });\r\n\r\n self.scrollChatToBottom();\r\n }\r\n\r\n FiveStarHub.prototype.participantConnected = function (message) {\r\n var self = this;\r\n\r\n var results = $.grep(self.onlineParticipants(), function (e, i) {\r\n return e.avatar === message.Avatar;\r\n });\r\n\r\n if (results.length === 0) {\r\n self.onlineParticipants.push(new OnlineParticipant(message.Avatar));\r\n }\r\n }\r\n\r\n FiveStarHub.prototype.participantDisconnected = function (message) {\r\n var self = this;\r\n\r\n var results = $.grep(self.onlineParticipants(), function (e, i) {\r\n return e.avatar === message.Avatar;\r\n });\r\n\r\n if (results.length > 0) {\r\n self.onlineParticipants.remove(results[0]);\r\n }\r\n\r\n var $wrapper = $('#FiveStarMain .stream .wrapper');\r\n if (self.currentWrapperPosition > 0) {\r\n self.currentWrapperPosition--;\r\n wrapper.animate({ left: \"+=85px\" });\r\n }\r\n };\r\n\r\n FiveStarHub.prototype.broadcastMessage = function (message) {\r\n var self = this;\r\n\r\n self.comments.push(new Comment(message.ID, message.Name, message.Text, message.CreatedDate));\r\n\r\n self.scrollChatToBottom();\r\n };\r\n\r\n FiveStarHub.prototype.flagMessage = function (clientInitiated, messageID) {\r\n var self = this;\r\n\r\n if (clientInitiated === true) {\r\n self.server.flagMessage(messageID);\r\n }\r\n self.removeMessage(messageID);\r\n };\r\n\r\n FiveStarHub.prototype.removeMessage = function (messageID) {\r\n var self = this;\r\n\r\n self.comments.remove(function (item) { return item.id === messageID; });\r\n };\r\n\r\n FiveStarHub.prototype.scrollChatToBottom = function () {\r\n var self = this;\r\n\r\n self.$chat.scrollTop(self.$chat[0].scrollHeight);\r\n }\r\n\r\n return FiveStarHub;\r\n}(this, jQuery));\r\n","IREP.fivestarold = (function () {\r\n var init = function () {\r\n $('#fivestar .menu li.stores > a').on('click', function (e) {\r\n e.preventDefault();\r\n $(this).closest('li').find('ul').slideToggle();\r\n });\r\n\r\n $('#fivestar .qualifications').on('click', '.nav > div > div', function () {\r\n var $root = $(this).closest('.qualifications');\r\n\r\n var tab = $(this).data('tab');\r\n $(this).siblings().removeClass('selected');\r\n $(this).addClass('selected');\r\n $root.find('.tabcontent').hide();\r\n $root.find('.' + tab).show();\r\n\r\n $root.find('.more').hide();\r\n $root.find('.less').show();\r\n });\r\n\r\n $('#fivestar .qualifications').on('click', '.header span', function () {\r\n var $root = $(this).closest('.qualifications');\r\n var tab = $root.find('.selected').data('tab');\r\n\r\n $root.find('.' + tab).toggle();\r\n $root.find('.more').toggle();\r\n $root.find('.less').toggle();\r\n });\r\n\r\n if ($('#fivestar .stream').length > 0) {\r\n var hub = new IREP.FiveStarHub({ 'paxuid': IREP.options.user.currentUID });\r\n }\r\n\r\n $('#fivestar a[data-achievement]').on('click', function (e) {\r\n e.preventDefault();\r\n var $giveKudos = $(this);\r\n var achievementUID = $(this).data('achievement');\r\n var $kudos = $(this).siblings('.kudos');\r\n IREP.callApi({ type: 'POST', url: 'fivestar/achievement/kudos', data: { uid: achievementUID } }).done(function (result) {\r\n if (result.kudos === true) {\r\n var $img = $('', { src: IREP.options.apiUrl + 'participant/profile/' + IREP.options.user.currentUID });\r\n $kudos.append($img);\r\n $giveKudos.remove();\r\n }\r\n });\r\n });\r\n\r\n $('#fivestar .addComment a').on('click', function (e) {\r\n e.preventDefault();\r\n\r\n var achievementUID = $(this).closest('[data-achievement]').data('achievement');\r\n var text = $(this).siblings('input').val();\r\n\r\n addComment(achievementUID, text);\r\n });\r\n\r\n $('#fivestar .addComment input').on('keypress', function (e) {\r\n if (e.which === 13) {\r\n var achievementUID = $(this).closest('[data-achievement]').data('achievement');\r\n var text = $(this).val();\r\n\r\n addComment(achievementUID, text);\r\n }\r\n });\r\n\r\n $('#fivestar [data-tooltip-text]').on('click', function (e) {\r\n $('.tooltip').remove();\r\n var title = $(this).data('tooltip-title');\r\n var text = $(this).data('tooltip-text');\r\n var position = $(this).data('tooltip-position');\r\n\r\n var offset = $(this).offset();\r\n var $body = $('body');\r\n var $div = $('

' + title + '

' + text + '

');\r\n \r\n $body.append($div);\r\n if (position === \"right\") {\r\n $div.offset({ left: offset.left - $div.width() - 5, top: offset.top - $div.height() - 25 });\r\n } else {\r\n $div.offset({ left: offset.left, top: offset.top - $div.height() - 25 });\r\n }\r\n\r\n $div.find('.close').on('click', function () {\r\n $('.tooltip').remove();\r\n });\r\n });\r\n };\r\n\r\n var addComment = function (achievementUID, text) {\r\n IREP.callApi({ type: 'POST', url: 'fivestar/achievement/comment', data: { uid: achievementUID, text: text } }).done(function (result) {\r\n $('#fivestar .addComment[data-achievement=\\'' + achievementUID + '\\'] input').val('');\r\n window.location = window.location;\r\n });\r\n };\r\n\r\n return {\r\n init: init\r\n };\r\n}());\r\n\r\nIREP.fivestarold.quickpoll = (function () {\r\n var submitButton;\r\n var sidebarH2;\r\n var init = function (options) {\r\n\r\n var qpData = {};\r\n qpData.Code = options.quizCode;\r\n qpData.CultureCode = IREP.options.user.cultureCode;\r\n qpData.CountryCode = IREP.options.user.countryCode;\r\n qpData.SQuestions = options.hfQuestions;\r\n qpData.StoreChainId = options.storeChainId;\r\n submitButton = options.submitButton;\r\n\r\n $(options.submitButton).click(function () {\r\n if (typeof $(\"input:checked\").val() != \"undefined\") {//force them to make a selection to submit\r\n qpData.AnswerCode = $(\"input:checked\").val(); //get which radio button checked\r\n qpData.AnswerText = \"\";\r\n qpData.ActivityTime = options.hfTimeStamp;\r\n $(submitButton).css(\"display\", \"none\"); //hide submit button\r\n $(options.divSubmit).css(\"margin-left\", \"30px\");\r\n $(options.divSubmit).html(\"Retrieving results...\");\r\n IREP.callApi(\"quiz/quickpollsubmit\", \"POST\", qpData).done(function (data) {\r\n });\r\n }\r\n else { return false;}\r\n\r\n });\r\n };\r\n\r\n return {\r\n init: init\r\n };\r\n})();\r\n\r\n\r\n","/* global ko */\r\nIREP.Garage = (function () {\r\n var hoverTimeout = 500;\r\n\r\n var Garage = function () {\r\n var self = this;\r\n\r\n this.$garage = $('#garage');\r\n this.$market = $('#market');\r\n this.$astrocomm = this.$garage.find('.astrocomm');\r\n\r\n $('#footer').remove();\r\n self.insertUserInfo();\r\n self.levelUpdate();\r\n self.insertNewTools();\r\n self.updateInsertNewShip();\r\n //self.glowingBlue5();\r\n self.initialFunction();\r\n\r\n this.level = ko.observable();\r\n this.chips = ko.observable(0);\r\n\r\n this.bubbleImage = ko.computed(function () {\r\n return Math.floor(Math.random() * 5) + 1;\r\n });\r\n\r\n this.tools = ko.observableArray([]);\r\n \r\n this.selectedTool = ko.observable(null);\r\n\r\n this.parts = ko.observableArray([]);\r\n this.selectedPart = ko.observable(null);\r\n\r\n this.stash = ko.observableArray([]);\r\n this.selectedStash = ko.observable(null);\r\n\r\n this.shipSelection = ko.observableArray([]);\r\n\r\n this.pilotInfo = ko.observableArray();\r\n \r\n this.market = ko.observableArray();\r\n this.selectedMarketItem = ko.observable(null);\r\n\r\n this.ship = ko.observableArray();\r\n\r\n this.fuelBase = ko.observable(10);\r\n this.fuelSupply = ko.observable(0);\r\n this.fuelBought = ko.observable(0);\r\n\r\n this.fuel = ko.computed(function () {\r\n return self.fuelBase()+ self.fuelSupply() + self.fuelBought();\r\n });\r\n\r\n this.fuel.subscribe(function (value) {\r\n self.$garage.find('.controls .fuel .progress > div').width(value + '%');\r\n });\r\n \r\n this.chargeBase = ko.observable(5);\r\n this.chargeSupply = ko.observable(0);\r\n this.chargeBought = ko.observable(0);\r\n\r\n this.charge = ko.computed(function () {\r\n return self.chargeBase() + self.chargeSupply() + self.chargeBought()\r\n });\r\n\r\n this.charge.subscribe(function (value) {\r\n self.$garage.find('.controls .charge .progress > div').width(value + '%');\r\n }); \r\n \r\n this.shieldBase = ko.observable(10);\r\n this.shieldSupply = ko.observable(0);\r\n this.shieldBought = ko.observable(0);\r\n\r\n this.shield = ko.computed(function () {\r\n return self.shieldBase() + self.shieldSupply() + self.shieldBought()\r\n });\r\n\r\n this.shield.subscribe(function (value) {\r\n self.$garage.find('.controls .shield .progress > div').width(value + '%');\r\n });\r\n \r\n this.shieldType = ko.observable('-NONE-');\r\n\r\n this.costBase = ko.computed(function() {\r\n return self.fuel() + self.charge() + self.shield() -25;\r\n });\r\n this.costSupply = ko.observable(0);\r\n\r\n this.cost = ko.computed(function () {\r\n return self.costBase() - self.costSupply();\r\n });\r\n\r\n this.hover = ko.observable(null);\r\n this.hoverName = ko.computed(function () {\r\n return self.hover() !== null ? self.hover().name() : '-NONE-';\r\n });\r\n this.hoverDistance = ko.computed(function () {\r\n return self.hover() !== null ? Garage.numberWithCommas(self.hover().distance()) : '0';\r\n });\r\n this.hoverLevelRequired = ko.computed(function () {\r\n return self.hover() !== null ? self.hover().level() : '0';\r\n });\r\n this.hoverAccess = ko.computed(function () {\r\n if (self.hover() !== null) {\r\n if ((self.level() >= self.hover().level()) && (self.hover().name() !== 'Titan')) {\r\n return '-GRANTED-';\r\n }\r\n else if ((self.hover().name() === 'Titan') && (self.level() >= self.hover().level()) && (self.ship()[0].id() === 19 || self.ship()[0].id() === 20)) {\r\n return '-GRANTED-';\r\n }\r\n else {\r\n return '-DENIED-';\r\n } \r\n }\r\n\r\n return '-NONE-';\r\n });\r\n\r\n\r\n this.visit = ko.observable(null);\r\n this.visitName = ko.computed(function () {\r\n return self.visit() !== null ? self.visit().name() : '-NONE-';\r\n });\r\n this.visitDistance = ko.computed(function () {\r\n return self.visit() !== null ? Garage.numberWithCommas(self.visit().distance()) : '0';\r\n });\r\n this.visitLevelRequired = ko.computed(function () {\r\n return self.visit() !== null ? self.visit().level() : '0';\r\n });\r\n this.visitAccess = ko.computed(function () {\r\n if (self.visit() !== null) {\r\n if (self.level() >= self.visit().level()) {\r\n return '-GRANTED-';\r\n } else {\r\n return '-DENIED-';\r\n }\r\n }\r\n\r\n return '-NONE-';\r\n });\r\n\r\n this.target = ko.observable(null);\r\n this.targetName = ko.computed(function() {\r\n return self.target() !== null ? self.target().name() : '-NONE-';\r\n });\r\n this.targetDistance = ko.computed(function() {\r\n return self.target() !== null ? Garage.numberWithCommas(self.target().distance()) : '0';\r\n });\r\n this.targetLevelRequired = ko.computed(function() {\r\n return self.target() !== null ? self.target().level() : '0';\r\n });\r\n this.targetAccess = ko.computed(function() {\r\n if (self.target() !== null) {\r\n if (self.level() >= self.target().level()) {\r\n return '-GRANTED-';\r\n } else {\r\n return '-DENIED-';\r\n }\r\n }\r\n\r\n return '-NONE-';\r\n });\r\n \r\n this.targets = ko.observableArray([]);\r\n\r\n this.canLaunch = ko.computed(function () { \r\n var fuel = self.fuel();\r\n var charge = self.charge();\r\n var shield = self.shield();\r\n var shieldType = self.shieldType();\r\n var target = self.target();\r\n var level = self.level();\r\n var ship = self.ship();\r\n\r\n var chipsAvailable = 0;\r\n\r\n if (self.pilotInfo()[0] !== undefined) {\r\n if (self.pilotInfo()[0].totalPoints !== undefined) {\r\n chipsAvailable = self.pilotInfo()[0].totalPoints();\r\n }\r\n }\r\n \r\n if (fuel > (self.fuelBase() + self.fuelSupply()) && charge > (self.chargeBase() + self.chargeSupply()) && shield > (self.shieldBase() + self.shieldSupply()) && shieldType !== '-NONE-' && target !== null && level >= target.level() && ship.length > 0 && chipsAvailable >= self.cost() && target.name() !== 'Titan' && self.shipSelection().length === 0) {\r\n return true;\r\n }\r\n else if (fuel > (self.fuelBase() + self.fuelSupply()) && charge > (self.chargeBase() + self.chargeSupply()) && shield > (self.shieldBase() + self.shieldSupply()) && shieldType !== '-NONE-' && target !== null && level >= target.level() && ship.length > 0 && chipsAvailable >= self.cost() && target.name() === 'Titan' && (ship[0].id() === 19 || ship[0].id() === 20) && self.shipSelection().length === 0) {\r\n return true;\r\n }\r\n\r\n return false;\r\n });\r\n\r\n $('.bubble-tow').on('click', function () {\r\n $('.bubble-tow').hide();\r\n });\r\n\r\n $('.bubbleImg').on('click', function () {\r\n $('.bubbleImg').hide();\r\n });\r\n\r\n this.mission = ko.observable(null);\r\n\r\n this.$garage.find('[data-nav]').on('click', this.gotoMainLandingPage);\r\n this.$market.find('[data-nav]').on('click', this.gotoMainLandingPage); \r\n\r\n this.introSound = ['/Content/Images/ASMO/2015SWIC/garage/audio/BlueFive 1.mp3'];\r\n this.lunaticSounds = ['/Content/Images/ASMO/2015SWIC/garage/audio/Lunatic 1.mp3', '/Content/Images/ASMO/2015SWIC/garage/audio/Lunatic 2.mp3', '/Content/Images/ASMO/2015SWIC/garage/audio/Lunatic 3.mp3','/Content/Images/ASMO/2015SWIC/garage/audio/Lunatic 4.mp3', '/Content/Images/ASMO/2015SWIC/garage/audio/Lunatic 5.mp3', '/Content/Images/ASMO/2015SWIC/garage/audio/Lunatic 6.mp3', '/Content/Images/ASMO/2015SWIC/garage/audio/Lunatic 7.mp3', '/Content/Images/ASMO/2015SWIC/garage/audio/Lunatic 8.mp3', '/Content/Images/ASMO/2015SWIC/garage/audio/Lunatic 9.mp3', '/Content/Images/ASMO/2015SWIC/garage/audio/Lunatic 10.mp3', '/Content/Images/ASMO/2015SWIC/garage/audio/Lunatic 11.mp3', '/Content/Images/ASMO/2015SWIC/garage/audio/Lunatic 12.mp3', '/Content/Images/ASMO/2015SWIC/garage/audio/Lunatic 13.mp3', '/Content/Images/ASMO/2015SWIC/garage/audio/Lunatic 14.mp3', '/Content/Images/ASMO/2015SWIC/garage/audio/Lunatic 15.mp3', '/Content/Images/ASMO/2015SWIC/garage/audio/Lunatic 16.mp3', '/Content/Images/ASMO/2015SWIC/garage/audio/Lunatic 17.mp3', '/Content/Images/ASMO/2015SWIC/garage/audio/Lunatic 18.mp3', '/Content/Images/ASMO/2015SWIC/garage/audio/Lunatic 19.mp3', '/Content/Images/ASMO/2015SWIC/garage/audio/Lunatic 20.mp3', '/Content/Images/ASMO/2015SWIC/garage/audio/Lunatic 21.mp3'];\r\n\r\n this.blue5Success = ['/Content/Images/ASMO/2015SWIC/garage/audio/BlueFive 5.mp3', '/Content/Images/ASMO/2015SWIC/garage/audio/BlueFive 6.mp3', '/Content/Images/ASMO/2015SWIC/garage/audio/BlueFive 7.mp3', '/Content/Images/ASMO/2015SWIC/garage/audio/BlueFive 8.mp3', '/Content/Images/ASMO/2015SWIC/garage/audio/BlueFive 9.mp3', '/Content/Images/ASMO/2015SWIC/garage/audio/BlueFive 10.mp3'];\r\n\r\n this.blue5Failure = ['/Content/Images/ASMO/2015SWIC/garage/audio/BlueFive 2.mp3', '/Content/Images/ASMO/2015SWIC/garage/audio/BlueFive 3.mp3', '/Content/Images/ASMO/2015SWIC/garage/audio/BlueFive 4.mp3'];\r\n\r\n this.howl = null; \r\n\r\n ko.applyBindings(this);\r\n\r\n try {\r\n _gaq.push(['_setCustomerVar', 3, 'HANGAR', 'yes', 1]);\r\n _gaq.push(['_setCustomerVar', 4, 'HANGAR', 'yes', 2]);\r\n _gaq.push(['_trackEvent', 'HANGAR', 'visit']);\r\n } catch (e) { }\r\n };\r\n\r\n Garage.prototype.track = function (type, label, value, data) {\r\n IREP.track('GARAGE', type, label, value, data);\r\n try {\r\n _gaq.push(['_trackEvent', 'GARAGE', type, label, value]);\r\n } catch (e) { }\r\n };\r\n\r\n Garage.prototype.trackMessage = function(label, value, data) {\r\n this.track('message', label, value, data);\r\n };\r\n\r\n Garage.prototype.trackVisit = function(label, value, data) {\r\n this.track('visit', label, value, data);\r\n };\r\n\r\n Garage.prototype.trackTarget = function (label, value, data) {\r\n this.track('target', label, value, data);\r\n };\r\n\r\n Garage.prototype.trackTutorial = function (label, value, data) {\r\n this.track('tutorial', label, value, data);\r\n };\r\n\r\n Garage.prototype.trackMenu = function(label, value, data) {\r\n this.track('menu', label, value, data);\r\n };\r\n\r\n Garage.prototype.trackChart = function (label, value, data) {\r\n this.track('chart', label, value, data);\r\n };\r\n\r\n Garage.prototype.openBlue5Message = function (data, event) {\r\n $('.messageList').css('display', 'none');\r\n $('.messageList').removeClass('opened'); \r\n event = event || window.event;\r\n var target = event.target || event.srcElement;\r\n\r\n if ($(target).hasClass('introMsg')) { \r\n $('.intro').addClass('opened');\r\n $('.intro').css('display', 'block');\r\n $('.page1').addClass('opened');\r\n $('.page1').css('display', 'block');\r\n $('footer').css('display', 'block');\r\n $('.prev').css('visibility', 'visible');\r\n $('.next').css('visibility', 'visible');\r\n }\r\n else if ($(target).hasClass('lvl2')) {\r\n $('.lvl2msg').addClass('opened');\r\n $('.lvl2msg').css('display', 'block');\r\n $('.footer').css('display', 'block');\r\n $('.prev').css('visibility', 'visible');\r\n $('.next').css('visibility', 'hidden');\r\n this.trackTutorial('lvl2msg');\r\n }\r\n else if ($(target).hasClass('lvl3')) {\r\n $('.lvl3msg').addClass('opened');\r\n $('.lvl3msg').css('display', 'block');\r\n $('.footer').css('display', 'block');\r\n $('.prev').css('visibility', 'visible');\r\n $('.next').css('visibility', 'hidden');\r\n this.trackTutorial('lvl3msg');\r\n }\r\n else if ($(target).hasClass('lvl4')) {\r\n $('.lvl4msg').addClass('opened');\r\n $('.lvl4msg').css('display', 'block');\r\n $('.footer').css('display', 'block');\r\n $('.prev').css('visibility', 'visible');\r\n $('.next').css('visibility', 'hidden');\r\n this.trackTutorial('lvl4msg');\r\n }\r\n else if ($(target).hasClass('lvl5')) {\r\n $('.lvl5msg').addClass('opened');\r\n $('.lvl5msg').css('display', 'block');\r\n $('.footer').css('display', 'block');\r\n $('.prev').css('visibility', 'visible');\r\n $('.next').css('visibility', 'hidden');\r\n this.trackTutorial('lvl4msg');\r\n }\r\n };\r\n\r\n Garage.prototype.goToTheNextPage = function () {\r\n var page = $('#garage').find('.message .intro > div.opened');\r\n if (page.length !== 0) {\r\n var className = $(page)[0].className;\r\n var num = parseInt(className.substring(4, 6)) + 1;\r\n\r\n if (num === 11) {\r\n $('.next').css('visibility', 'hidden');\r\n } \r\n else {\r\n $('.next').css('visibility', 'visible');\r\n } \r\n\r\n if (num !== 12) {\r\n $(page).removeClass('opened');\r\n $('.page' + num).addClass('opened');\r\n this.messageScreenToggle('intro','page' + num);\r\n this.trackTutorial('page' + num);\r\n this.glowTutorial(num);\r\n }\r\n }\r\n else {\r\n $(page).removeClass('opened');\r\n $('.page1').addClass('opened');\r\n this.messageScreenToggle('intro','page1');\r\n $('.prev').css('visibility', 'hidden');\r\n this.glowTutorial(1);\r\n this.trackTutorial('page1');\r\n }\r\n };\r\n \r\n Garage.prototype.goToThePrevPage = function () {\r\n var page = $('#garage').find('.message .intro > div.opened');\r\n var lvlMsg = $('#garage').find('.message div.opened');\r\n\r\n if (page.length!== 0) {\r\n var className = $(page)[0].className;\r\n var num = parseInt(className.substring(4, 6)) - 1;\r\n\r\n if (num === 0) {\r\n this.$garage.find('.opened').css('display', 'none').removeClass('opened');\r\n $('.messageList').css('display', 'block');\r\n $('.messageList').addClass('opened');\r\n $('footer').hide();\r\n }\r\n\r\n if (num <= 10) {\r\n $('.next').css('visibility', 'visible');\r\n }\r\n\r\n if (num !==0) {\r\n $(page).removeClass('opened');\r\n $('.page' + num).addClass('opened');\r\n this.messageScreenToggle('intro','page' + num);\r\n this.trackTutorial('page' + num);\r\n this.glowTutorial(num);\r\n }\r\n }\r\n else if (lvlMsg.length !==0){\r\n this.$garage.find('.opened').css('display', 'none').removeClass('opened');\r\n $('.messageList').css('display', 'block');\r\n $('.messageList').addClass('opened');\r\n $('footer').hide();\r\n } \r\n };\r\n\r\n Garage.prototype.messageScreenToggle = function (parentMsg, msg) {\r\n this.$garage.find('.message div:not([class=opened])').hide();\r\n this.$garage.find('.message .' + parentMsg).show()\r\n this.$garage.find('.message .' + msg).show();\r\n };\r\n\r\n Garage.prototype.glowTutorial = function (item) {\r\n var page = $('#garage').find('.tutorial');\r\n\r\n if (page.length > 0) {\r\n $(page).removeClass('tutorial');\r\n } \r\n \r\n if (item === 4) {\r\n $('.step4').addClass('tutorial');\r\n }\r\n else if (item === 5) { \r\n $('.tools').addClass('tutorial');\r\n }\r\n else if (item === 6) {\r\n $('.step5').addClass('tutorial'); \r\n }\r\n else if (item === 7) {\r\n $('.screenToggle:nth-child(3)').addClass('tutorial');\r\n }\r\n else if (item === 8) {\r\n $('.step8').addClass('tutorial');\r\n }\r\n else if (item === 9) { \r\n $('.fuel').addClass('tutorial');\r\n $('.charge').addClass('tutorial');\r\n $('.shield').addClass('tutorial');\r\n }\r\n else if (item === 10) {\r\n $('.launch').addClass('tutorial');\r\n }\r\n else if (item === 11) {\r\n $('.stash').addClass('tutorial');\r\n }\r\n };\r\n\r\n Garage.prototype.playSound = function (file) {\r\n if (this.howl !== null) {\r\n this.howl.stop();\r\n this.howl = null;\r\n }\r\n\r\n this.howl = new Howl({\r\n urls: [file]\r\n });\r\n\r\n this.howl.play();\r\n }\r\n\r\n Garage.prototype.delay = function (timeout) {\r\n var deferred = $.Deferred();\r\n\r\n setTimeout(function () {\r\n deferred.resolve();\r\n }, timeout);\r\n\r\n return deferred.promise();\r\n };\r\n\r\n Garage.numberWithCommas = function(x) {\r\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \",\");\r\n };\r\n\r\n Garage.prototype.gotoMainLandingPage = function () {\r\n if ($(this).data('nav') !== 'garage') {\r\n window.location.href = IREP.options.appUrl + 'asmo/swic/' + $(this).data('nav');\r\n }\r\n };\r\n\r\n Garage.prototype.openMessage = function () {\r\n var self = this;\r\n self.stopGlowing();\r\n\r\n if (self.level() === 5) {\r\n $('.introMsg').addClass('granted');\r\n $('.lvl5').addClass('granted');\r\n }\r\n else if (self.level() === 4) {\r\n $('.introMsg').addClass('granted');\r\n $('.lvl4').addClass('granted');\r\n }\r\n else if (self.level() === 3) {\r\n $('.introMsg').addClass('granted');\r\n $('.lvl3').addClass('granted');\r\n }\r\n else if (self.level() === 2) {\r\n $('.introMsg').addClass('granted');\r\n $('.lvl2').addClass('granted');\r\n }\r\n else {\r\n $('.introMsg').addClass('granted');\r\n }\r\n\r\n this.$garage.find('.opened').css('display', 'none').removeClass('opened');\r\n $('footer').hide();\r\n $('.messageList').css('display', 'block');\r\n $('.messageList').addClass('opened');\r\n this.trackMessage('open');\r\n\r\n var soundFile = this.introSound[Math.floor(Math.random() * this.introSound.length)];\r\n\r\n this.playSound(soundFile);\r\n\r\n $('.open').removeClass('open');\r\n this.$garage.find('.message').toggleClass('open');\r\n };\r\n\r\n Garage.prototype.openHome = function () {\r\n $('.open').removeClass('open');\r\n this.$garage.find('.home').toggleClass('open');\r\n this.$market.find('.home').toggleClass('open');\r\n };\r\n\r\n Garage.prototype.openHangar = function () {\r\n this.$garage.find('.home').removeClass('open');\r\n this.$market.find('.home').removeClass('open');\r\n this.$market.hide();\r\n this.$garage.show();\r\n };\r\n\r\n Garage.prototype.openVendor = function () {\r\n if ($('.vendor').hasClass('active')) {\r\n this.$market.show();\r\n this.$garage.hide();\r\n\r\n var soundFile = this.lunaticSounds[Math.floor(Math.random() * this.lunaticSounds.length)];\r\n\r\n this.playSound(soundFile);\r\n }\r\n else {\r\n $('.vendor').hide();\r\n }\r\n $('.bubbleImg').hide();\r\n };\r\n\r\n Garage.prototype.glowingBlue5 = function () {\r\n $('.btnGlow').css('display', 'inline');\r\n $('.outerGlow').css('display', 'inline');\r\n\r\n function pulsate(element) {\r\n $('.btnGlow').css('opacity', 1);\n $(element || this).css('opacity', 0);\n\n $('.outerGlow').animate({ opacity: 1 }, 1000, function () {\r\n $('.outerGlow').animate({ opacity: 0 }, 1000, pulsate);\r\n });\r\n };\r\n\r\n pulsate('.blue5');\r\n };\r\n\r\n Garage.prototype.stopGlowing = function () {\r\n $('.btnGlow').hide();\n $('.outerGlow').hide();\n $('.blue5').css('opacity', 1);\r\n };\r\n\r\n Garage.prototype.openScreen = function () {\r\n $('.open').removeClass('open');\r\n this.$garage.find('.tutorial').removeClass('tutorial');\r\n this.$garage.find('.opened').css('display', 'none').removeClass('opened');\r\n\r\n this.$garage.find('.screen').toggleClass('open');\r\n\r\n this.$astrocomm.find('> .screenToggle').toggleClass('open');\r\n };\r\n\r\n Garage.prototype.closeScreen = function() {\r\n $('.open').removeClass('open');\r\n };\r\n\r\n Garage.prototype.openMenu = function (d, e) {\r\n this.$garage.find('.tutorial').removeClass('tutorial');\r\n this.$garage.find('.opened').css('display', 'none').removeClass('opened');\r\n\r\n if (!$(e.currentTarget).hasClass('open')) {\r\n $('.open').removeClass('open');\r\n var target = $(e.currentTarget).attr('class');\r\n this.trackMenu(target);\r\n $(e.currentTarget).addClass('open');\r\n } else {\r\n $('.open').removeClass('open');\r\n }\r\n };\r\n\r\n Garage.prototype.closeAll = function () {\r\n this.$garage.find('.open').removeClass('open');\r\n this.$garage.find('.tutorial').removeClass('tutorial');\r\n this.$market.find('.open').removeClass('open');\r\n this.$garage.find('.opened').css('display', 'none').removeClass('opened');\r\n\r\n if ($('.vendor').hasClass('active') !== true) {\r\n $('.vendor').hide();\r\n }\r\n\r\n $('.bubbleImg').hide();\r\n };\r\n\r\n Garage.prototype.astrocommScreenToggle = function(screen) {\r\n this.$astrocomm.find('.screen > div:not([class=screenToggle])').hide();\r\n this.$astrocomm.find('.screen > .' + screen).show();\r\n }\r\n\r\n Garage.prototype.visitSelect = function (a, b, c) {\r\n var targetName = $(b.target).data('target');\r\n var target = _.find(this.targets(), function(e, i) {\r\n return e.name().toLowerCase() == targetName;\r\n });\r\n\r\n this.visit(target);\r\n this.astrocommScreenToggle('planet');\r\n this.trackVisit(targetName);\r\n };\r\n\r\n Garage.prototype.visitOver = function(a,b,c) {\r\n var targetName = $(b.target).data('target');\r\n var target = _.find(this.targets(), function(e, i) {\r\n return e.name().toLowerCase() == targetName;\r\n });\r\n\r\n this.hover(target);\r\n };\r\n\r\n Garage.prototype.visitOut = function() {\r\n this.hover(null);\r\n };\r\n\r\n Garage.prototype.targetSelect = function () {\r\n this.target(this.visit());\r\n this.astrocommScreenToggle('chart');\r\n this.trackTarget(this.target().name());\r\n };\r\n\r\n Garage.prototype.openChart = function () {\r\n var self = this;\r\n this.astrocommScreenToggle('chart');\r\n this.trackChart('open');\r\n\r\n self.levelUpdate();\r\n self.initialFunction();\r\n };\r\n\r\n Garage.prototype.fuelProgress = function (a, e) {\r\n var self = this;\r\n var width = $(e.currentTarget).width();\r\n var offsetX = e.offsetX;\r\n var ammount = Math.round(((offsetX / width * 100) + 3) / 5, 0) * 5;\r\n var bought = ammount - self.fuelBase() - self.fuelSupply();\r\n\r\n if (bought >= 0) {\r\n $(e.currentTarget).find('div').width(ammount + '%');\r\n\r\n this.fuelBought(bought);\r\n }\r\n };\r\n\r\n Garage.prototype.chargeProgress = function (a, e) {\r\n var self = this;\r\n var width = $(e.currentTarget).width();\r\n var offsetX = e.offsetX;\r\n var ammount = Math.round(((offsetX / width * 100) + 3) / 5, 0) * 5;\r\n var bought = ammount - self.chargeBase() - self.chargeSupply();\r\n\r\n if (bought >= 0) {\r\n $(e.currentTarget).find('div').width(ammount + '%');\r\n\r\n this.chargeBought(bought);\r\n }\r\n };\r\n\r\n Garage.prototype.shieldProgress = function (a, e) {\r\n var self = this;\r\n var width = $(e.currentTarget).width();\r\n var offsetX = e.offsetX;\r\n var ammount = Math.round(((offsetX / width * 100) + 3) / 5, 0) * 5;\r\n var bought = ammount - self.shieldBase() - self.shieldSupply();\r\n\r\n if (bought >= 0) {\r\n $(e.currentTarget).find('div').width(ammount + '%');\r\n\r\n this.shieldBought(bought);\r\n }\r\n };\r\n\r\n Garage.prototype.shieldHeat = function() {\r\n this.shieldType('HEAT');\r\n this.$garage.find('.controls .shield .heat p').addClass('selected');\r\n this.$garage.find('.controls .shield .impact p').removeClass('selected');\r\n };\r\n\r\n Garage.prototype.shieldImpact = function() {\r\n this.shieldType('IMPACT');\r\n this.$garage.find('.controls .shield .heat p').removeClass('selected');\r\n this.$garage.find('.controls .shield .impact p').addClass('selected');\r\n };\r\n\r\n Garage.prototype.Deferred = function () {\r\n var self = this;\r\n var deferred = $.Deferred();\r\n deferred.resolve();\r\n return deferred.promise();\r\n }; \r\n\r\n Garage.prototype.updateInsertNewShip = function () {\r\n var self = this;\r\n\r\n IREP.callApi({\r\n url: \"swic6/insertNewShip\",\r\n type: \"POST\",\r\n data: {}\r\n });\r\n };\r\n\r\n /*********************************************************************\r\n * GARAGE PARTS/ TOOLS/ STASH/ SHIP/ SHIP SELECTION/ GRAY MARKET ITEMS/ PILOT INFO\r\n */\r\n Garage.prototype.getGarageInfo = function () {\r\n return IREP.callApi({ url: 'swic6/garage' });\r\n };\r\n \r\n Garage.prototype.initialFunction = function () {\r\n var self = this;\r\n\r\n $.when(this.getGarageInfo(), this.Deferred()).then(function (items){\r\n //tools\r\n var UserTools = [];\r\n items[0].tools.forEach(function (e) {\r\n UserTools.push(new Garage.Item(self, e.category, e.name, e.description, e.imageUrl));\r\n });\r\n self.tools(UserTools); \r\n\r\n //stash\r\n var UserStash = [];\r\n items[0].phantomParts.forEach(function (e) {\r\n UserStash.push(new Garage.Item(self, e.category, e.name, e.description, e.imageUrl));\r\n });\r\n self.stash(UserStash);\r\n\r\n //ship selection\r\n var UserShipSelection = [];\r\n items[0].ships.forEach(function (e) {\r\n UserShipSelection.push(new Garage.ShipSelection(self, e.id, e.name, e.description, e.icon, e.levelId))\r\n });\r\n self.shipSelection(UserShipSelection);\r\n\r\n if (items[0].ships.length !== 0) {\r\n self.astrocommScreenToggle('shipSelection');\r\n self.openScreen(); \r\n }\r\n\r\n //pilot information\r\n var UserInfo = [];\r\n UserInfo.push(new Garage.PilotObject(self, items[0].pilot.name, items[0].pilot.levelId, items[0].pilot.status,\r\n items[0].pilot.shipName, items[0].pilot.icon, items[0].pilot.totalPoints));\r\n\r\n self.pilotInfo(UserInfo);\r\n self.level(items[0].pilot.levelId);\r\n\r\n $(\".vendor\").hide();\r\n\r\n //show gray market items\r\n var UserMarket = [];\r\n if (items[0].grayMarketTools !== undefined && items[0].grayMarketTools !== 0) {\r\n $(\".vendor\").show();\r\n $('.bubbleImg').show();\r\n $(\".vendor\").addClass('active');\r\n var icon = 'GrayMktIcons-Bordered_0000_TOOL BUYOUT.jpg';\r\n var title = 'HANGAR TOOLS BUYOUT';\r\n var description = \"So I found these laying around in one of the ring sections. Get em’ while they’re ‘HOT’! Buy ‘em all today, and from what I hear, you’ll get some sort of medal.\";\r\n var id = 0;\r\n UserMarket.push(new Garage.Market(self, id, items[0].grayMarketTools, icon, title, description));\r\n }\r\n else if (items[0].grayMarketParts !== undefined && items[0].grayMarketParts.cost !== 0) {\r\n $(\".vendor\").show();\r\n $('.bubbleImg').show();\r\n $(\".vendor\").addClass('active');\r\n var icon = items[0].grayMarketParts.shipIcon;\r\n var title = items[0].grayMarketParts.shipName + ' PART BUYOUT';\r\n var description = 'No reason to work so hard to earn those parts. I have all the parts you need to complete your ship… if you’re willing to pay for it.';\r\n var id = 0;\r\n var cost = items[0].grayMarketParts.cost;\r\n UserMarket.push(new Garage.Market(self, id, cost, icon, title, description));\r\n }\r\n else if (items[0].garageAugmentedParts !== undefined && items[0].garageAugmentedParts[0] !== undefined) {\r\n $(\".vendor\").show();\r\n $('.bubbleImg').show();\r\n $(\".vendor\").addClass('active');\r\n items[0].garageAugmentedParts.forEach(function (e) {\r\n UserMarket.push(new Garage.Market(self, e.id, e.cost, e.icon, e.name, e.description));\r\n });\r\n }\r\n self.market(UserMarket);\r\n self.selectedMarketItem(UserMarket[0]);\r\n if ($('.vendor-items').children()[0] !== undefined) {\r\n $('.vendor-items').children()[0].setAttribute(\"class\", \"vendor-item selected\");\r\n } \r\n\r\n //User didn't pay for towing \r\n if (items[0].paidForTowing !== 0) {\r\n if (items[0].paidForTowing.success === false && items[0].paidForTowing.paidTowCost === false) {\r\n\r\n\r\n self.mission(new Garage.Mission(self, items[0].paidForTowing.success, items[0].paidForTowing.fuel, items[0].paidForTowing.charge, items[0].paidForTowing.shield, items[0].paidForTowing.shieldType, 150, 'NONE', 0, 0, 0, items[0].paidForTowing.planetName, items[0].paidForTowing.level, items[0].paidForTowing.thruster));\r\n\r\n self.openScreen();\r\n self.astrocommScreenToggle('mission');\r\n $('.bubbleImg').hide();\r\n $('.vendor').show();\r\n $('.bubble-tow').show();\r\n }\r\n }\r\n\r\n //garage ship\r\n if (typeof(items[0].ship) !== 'undefined') {\r\n var UserShip = [];\r\n UserShip.push(new Garage.Ship(self, items[0].ship.id, items[0].ship.name, items[0].ship.description, items[0].ship.icon));\r\n self.ship(UserShip);\r\n }\r\n else { \r\n self.ship().length = 0;\r\n var UserShip = [];\r\n self.ship(UserShip);\r\n //parts\r\n var UserParts = [];\r\n items[0].parts.forEach(function (e) {\r\n UserParts.push(new Garage.Item(self, e.category, e.name, e.description, e.imageUrl));\r\n });\r\n self.parts(UserParts);\r\n }\r\n\r\n //target\r\n var UserTarget = [];\r\n items[0].target.forEach(function (e) {\r\n UserTarget.push(new Garage.Target(self, e.id, e.name, e.description, e.icon, e.distance, e.level, e.numLandings, e.supply, e.chips, e.legendaryPart));\r\n });\r\n self.targets(UserTarget);\r\n\r\n //user supplies\r\n if (items[0].supplies !== undefined) {\r\n if (items[0].supplies.supply > 0) {\r\n self.fuelSupply(10);\r\n self.chargeSupply(5);\r\n self.shieldSupply(10);\r\n self.costSupply(25);\r\n }\r\n else {\r\n self.fuelSupply(0);\r\n self.chargeSupply(0);\r\n self.shieldSupply(0);\r\n self.costSupply(0);\r\n }\r\n }\r\n });\r\n };\r\n /*********************************************************************\r\n * INSERT PARTICIPANT INFO\r\n */\r\n Garage.prototype.insertUserInfo = function () {\r\n var self = this;\r\n\r\n IREP.callApi({\r\n url: \"swic6/insertParticipantInfo\",\r\n type: \"POST\",\r\n data: {}\r\n });\r\n };\r\n\r\n /*********************************************************************\r\n * CHOOSE THE SHIP\r\n */\r\n Garage.prototype.chooseYourShip = function () {\r\n var self = this;\r\n\r\n IREP.callApi({\r\n url: \"swic6/selectShip\",\r\n type: \"POST\",\r\n data: { shipId: self.id() }\r\n }).done(function () {\r\n self.garage.updateInsertNewShip();\r\n self.garage.levelUpdate();\r\n self.garage.initialFunction(); \r\n self.garage.glowingBlue5(); \r\n });\r\n\r\n $('.shipSelection').fadeOut(300);\r\n $('.chart').fadeIn(300);\r\n self.garage.initialFunction();\r\n \r\n }; \r\n\r\n /*********************************************************************\r\n * LEVEL UPDATE\r\n */\r\n Garage.prototype.levelUpdate = function(){\r\n var self= this;\r\n\r\n IREP.callApi({\r\n url: \"swic6/updateLevel\",\r\n type: \"POST\",\r\n data: {}\r\n });\r\n };\r\n\r\n /*********************************************************************\r\n * INSERT NEW TOOLS AND PARTS\r\n */\r\n Garage.prototype.insertNewTools = function (){\r\n var self= this;\r\n IREP.callApi({\r\n url: \"swic6/insertTool\",\r\n type: \"POST\",\r\n data:{}\r\n });\r\n }; \r\n\r\n /*********************************************************************\r\n * \r\n */\r\n Garage.prototype.launchShip = function () {\r\n var self = this;\r\n \r\n\r\n $.when(this.moveShipOffScreen(), self.getMissionStatus()).then(function (move, mission) {\r\n self.mission(mission);\r\n self.openScreen();\r\n self.astrocommScreenToggle('flight');\r\n return $.when(mission, self.delay(7000));\r\n }).then(function (data) {\r\n var mission = data;\r\n self.astrocommScreenToggle('mission'); \r\n\r\n if (mission.success()) {\r\n var soundFile = self.blue5Success[Math.floor(Math.random() * self.blue5Success.length)];\r\n self.playSound(soundFile);\r\n self.displayShip();\r\n }\r\n else {\r\n $('.bubbleImg').hide();\r\n $('.vendor').show();\r\n $('.bubble-tow').show();\r\n var soundFile = self.blue5Failure[Math.floor(Math.random() * self.blue5Failure.length)];\r\n self.playSound(soundFile);\r\n }\r\n self.initialFunction(); \r\n if (self.mission().success() === false) {\r\n $('.bubbleImg').hide();\r\n $('.vendor').show();\r\n $('.bubble-tow').show();\r\n }\r\n });\r\n };\r\n\r\n Garage.prototype.moveShipOffScreen = function() {\r\n var $ship = this.$garage.find('.ship img');\r\n return $ship.animate({ bottom: '100vh' }, 2500).promise();\r\n };\r\n\r\n Garage.prototype.getMissionStatus = function() {\r\n var self = this;\r\n\r\n var deferred = $.Deferred();\r\n\r\n var launch = {\r\n targetId: self.target().id(),\r\n fuel: self.fuel(),\r\n charge: self.charge(),\r\n shield: self.shield(),\r\n shieldType: self.shieldType(),\r\n targetLevel: self.target().level(),\r\n targetName: self.target().name()\r\n }\r\n IREP.callApi({ type: 'POST', url: 'swic6/garage/launch', data: launch }).done(function (response) {\r\n deferred.resolve((new Garage.Mission(self, response.success, response.fuel, response.charge, response.shield, response.shieldType, response.towingCost, response.icon, response.legendary, response.chips, response.supply, response.planetName, response.level, response.thruster)));\r\n });\r\n this.target(null);\r\n return deferred.promise();\r\n };\r\n\r\n Garage.prototype.payTheBill = function() {\r\n var self = this;\r\n if ($('.vendor').hasClass('active') !== true) {\r\n $('.vendor').hide();\r\n }\r\n\r\n $('.bubble-tow').hide();\r\n\r\n if (self.pilotInfo()[0].totalPoints() >= 150) {\r\n IREP.callApi({\r\n url: \"swic6/towTheShip\",\r\n type: \"POST\",\r\n data: {}\r\n }).done(function () {\r\n self.initialFunction();\r\n });\r\n\r\n this.astrocommScreenToggle('chart');\r\n this.displayShip();\r\n }\r\n };\r\n\r\n Garage.prototype.displayShip = function() {\r\n var self = this;\r\n var $ship = this.$garage.find('.ship img');\r\n $ship.css({ bottom: '5vh', opacity: 0 }).css({ opacity: 1 });\r\n };\r\n\r\n /*********************************************************************\r\n * \r\n */\r\n\r\n Garage.Item = function (garage, type, name, description, icon) {\r\n this.garage = garage;\r\n\r\n this.type = ko.observable(type);\r\n this.name = ko.observable(name);\r\n this.description = ko.observable(description);\r\n this.icon = ko.observable(icon);\r\n\r\n this.timeoutId = 0;\r\n } \r\n\r\n Garage.Item.prototype.mouseOver = function () {\r\n var self = this;\r\n this.timeoutId = setTimeout(function () {\r\n self.garage.selectedTool(self);\r\n self.garage.$garage.find('.tools .summary').addClass('open');\r\n }, hoverTimeout);\r\n };\r\n\r\n Garage.Item.prototype.mouseOut = function () {\r\n this.garage.$garage.find('.tools .summary').removeClass('open');\r\n this.garage.selectedTool(null);\r\n clearTimeout(this.timeoutId);\r\n };\r\n\r\n Garage.Item.prototype.mouseOverStash = function () {\r\n var self = this;\r\n this.timeoutId = setTimeout(function () {\r\n self.garage.selectedStash(self);\r\n self.garage.$garage.find('.stash .summary').addClass('open');\r\n }, hoverTimeout);\r\n };\r\n\r\n Garage.Item.prototype.mouseOutStash = function () {\r\n this.garage.$garage.find('.stash .summary').removeClass('open');\r\n this.garage.selectedStash(null);\r\n clearTimeout(this.timeoutId);\r\n };\r\n\r\n Garage.Item.prototype.mouseOverPart = function() {\r\n var self = this;\r\n this.timeoutId = setTimeout(function () {\r\n self.garage.selectedPart(self);\r\n self.garage.$garage.find('.status .summary').addClass('open');\r\n }, hoverTimeout);\r\n };\r\n\r\n Garage.Item.prototype.mouseOutPart = function() {\r\n this.garage.$garage.find('.status .summary').removeClass('open');\r\n this.garage.selectedPart(null);\r\n clearTimeout(this.timeoutId);\r\n };\r\n\r\n Garage.Ship = function(garage, id, name, description, icon) {\r\n this.garage = garage;\r\n\r\n this.id = ko.observable(id);\r\n this.name = ko.observable(name);\r\n this.description = ko.observable(description);\r\n this.icon = ko.observable(icon);\r\n };\r\n\r\n Garage.Target = function (garage, id, name, description, icon, distance, level, numLandings, supply, chips, legendaryPart) {\r\n this.garage = garage;\r\n\r\n this.id = ko.observable(id);\r\n this.name = ko.observable(name);\r\n this.description = ko.observable(description);\r\n this.icon = ko.observable(icon);\r\n this.distance = ko.observable(distance);\r\n this.level = ko.observable(level);\r\n this.numLandings = ko.observable(numLandings);\r\n this.supply = ko.observable(supply);\r\n this.chips = ko.observable(chips);\r\n this.legendaryPart = ko.observable(legendaryPart);\r\n };\r\n\r\n Garage.ShipSelection = function (garage, id, name, description, icon, levelId) {\r\n this.garage = garage;\r\n this.id = ko.observable(id);\r\n this.name = ko.observable(name);\r\n this.description = ko.observable(description);\r\n this.icon = ko.observable(icon);\r\n this.levelId = ko.observable(levelId);\r\n };\r\n\r\n Garage.PilotObject = function (garage, name, levelId, status, shipName, icon, totalPoints) {\r\n this.garage = garage;\r\n this.name = ko.observable(name);\r\n this.levelId = ko.observable(levelId);\r\n this.status = ko.observable(status);\r\n this.shipName = ko.observable(shipName);\r\n this.icon = ko.observable(icon);\r\n this.totalPoints = ko.observable(totalPoints);\r\n };\r\n\r\n Garage.Mission = function(garage, success, fuel, charge, shield, shieldType, towingCost, icon, legendary, chips, supply, planetName, level, thruster) {\r\n this.garage = garage;\r\n\r\n this.success = ko.observable(success);\r\n this.fuel = ko.observable(fuel);\r\n this.charge = ko.observable(charge);\r\n this.shield = ko.observable(shield);\r\n this.shieldType = ko.observable(shieldType);\r\n this.towingCost = ko.observable(towingCost);\r\n\r\n this.icon = ko.observable(icon);\r\n this.legendary = ko.observable(legendary);\r\n this.chips = ko.observable(chips);\r\n this.supply = ko.observable(supply);\r\n this.planetName = ko.observable(planetName);\r\n this.level = ko.observable(level);\r\n this.thruster = ko.observable(thruster);\r\n }\r\n\r\n Garage.Market = function (garage, id, cost, icon, title, description) {\r\n this.garage = garage;\r\n\r\n this.id = ko.observable(id);\r\n this.cost = ko.observable(cost);\r\n this.icon = ko.observable(icon);\r\n this.title = ko.observable(title);\r\n this.description = ko.observable(description);\r\n }\r\n\r\n Garage.Market.prototype.selectItem = function (data, event) {\r\n var self = this;\r\n\r\n event = event || window.event;\r\n var target = event.target || event.srcElement;\r\n\r\n this.garage.selectedMarketItem(null);\r\n self.garage.selectedMarketItem(self);\r\n $('.vendor-item').removeClass('selected');\r\n // var targetEvent = event.target.parentElement;\r\n var targetEvent = target.parentElement;\r\n $(targetEvent).addClass('selected');\r\n };\r\n\r\n Garage.Market.prototype.purchaseItemGrayMarket = function () {\r\n var self = this;\r\n var str = self.title();\r\n\r\n if (self.cost() <= self.garage.pilotInfo()[0].totalPoints()) {\r\n if (self.title() === 'HANGAR TOOLS BUYOUT') {\r\n IREP.callApi({\r\n url: \"swic6/insertPurchasedItems\",\r\n type: \"POST\",\r\n data: {\r\n itemId: 0,\r\n augmented1: 0,\r\n augmented2: 0,\r\n type: \"Tools\",\r\n incentiveId: 40450,\r\n incentiveCode: '2015SWIC6_Hangar',\r\n description: 'SWIC6_HANGAR'\r\n }\r\n }).done(function () {\r\n $(\".vendor\").hide();\r\n self.garage.initialFunction();\r\n\r\n $('#market').css('display', 'none');\r\n $('#garage').css('display', 'block');\r\n });\r\n }\r\n else if (str.search(\"PART BUYOUT\") !== -1) {\r\n IREP.callApi({\r\n url: \"swic6/insertPurchasedItems\",\r\n type: \"POST\",\r\n data: {\r\n itemId: 0,\r\n augmented1: 0,\r\n augmented2: 0,\r\n type: \"Parts\",\r\n incentiveId: 40450,\r\n incentiveCode: '2015SWIC6_Hangar',\r\n description: 'SWIC6_HANGAR'\r\n }\r\n }).done(function () {\r\n $(\".vendor\").hide();\r\n self.garage.updateInsertNewShip();\r\n self.garage.initialFunction();\r\n\r\n\r\n $('#market').css('display', 'none');\r\n $('#garage').css('display', 'block');\r\n });\r\n }\r\n else {\r\n var augmented1 = 0;\r\n var augmented2 = 0;\r\n if (str.search(\"SOLAR\") !== -1) {\r\n augmented1 = 1;\r\n\r\n IREP.callApi({\r\n url: \"swic6/insertPurchasedItems\",\r\n type: \"POST\",\r\n data: {\r\n itemId: self.id(),\r\n augmented1: augmented1,\r\n augmented2: augmented2,\r\n type: \"AugmentedItemsSolar\",\r\n incentiveId: 40450,\r\n incentiveCode: '2015SWIC6_Hangar',\r\n description: 'SWIC6_HANGAR'\r\n }\r\n }).done(function () {\r\n $(\".vendor\").hide();\r\n self.garage.initialFunction();\r\n\r\n $('#market').css('display', 'none');\r\n $('#garage').css('display', 'block');\r\n });\r\n }\r\n if (str.search(\"THRUST\") !== -1) {\r\n augmented2 = 1;\r\n\r\n IREP.callApi({\r\n url: \"swic6/insertPurchasedItems\",\r\n type: \"POST\",\r\n data: {\r\n itemId: self.id(),\r\n augmented1: augmented1,\r\n augmented2: augmented2,\r\n type: \"AugmentedItemsThrust\",\r\n incentiveId: 40450,\r\n incentiveCode: '2015SWIC6_Hangar',\r\n description: 'SWIC6_HANGAR'\r\n }\r\n }).done(function () {\r\n $(\".vendor\").hide();\r\n self.garage.initialFunction();\r\n\r\n $('#market').css('display', 'none');\r\n $('#garage').css('display', 'block');\r\n });\r\n }\r\n\r\n if (str.search(\"STRIPES\") !== -1) {\r\n IREP.callApi({\r\n url: \"swic6/insertPurchasedItems\",\r\n type: \"POST\",\r\n data: {\r\n itemId: self.id(),\r\n augmented1: augmented1,\r\n augmented2: augmented2,\r\n type: \"AugmentedItemsPaint\",\r\n incentiveId: 40450,\r\n incentiveCode: '2015SWIC6_Hangar',\r\n description: 'SWIC6_HANGAR'\r\n }\r\n }).done(function () {\r\n $(\".vendor\").hide();\r\n self.garage.initialFunction();\r\n\r\n $('#market').css('display', 'none');\r\n $('#garage').css('display', 'block');\r\n });\r\n }\r\n\r\n }\r\n }\r\n };\r\n\r\n return Garage;\r\n}());","var IREP = IREP || {};\r\n\r\nIREP.Recon = (function () {\r\n var defaultOptions = {\r\n clearanceLevel: 0,\r\n clearanceTextSpeed: 80,\r\n doorSpeed: 1000,\r\n introRingCount: 4,\r\n experiencePoints: 0,\r\n experienceLevel: 0,\r\n tway: {\r\n selectedPosition: 0,\r\n selectedMap: [],\r\n maps: {\r\n easy: [[\r\n \"TWAY-3DOT_EasyMaps_0001_Quiz1-UT-0.jpg\",\r\n \"TWAY-3DOT_EasyMaps_0002_Quiz1-UT-1.jpg\",\r\n \"TWAY-3DOT_EasyMaps_0003_Quiz1-UT-2.jpg\",\r\n \"TWAY-3DOT_EasyMaps_0004_Quiz1-UT-3.jpg\"\r\n ], [\r\n \"TWAY-3DOT_EasyMaps_0005_Quiz2-DT-0.jpg\",\r\n \"TWAY-3DOT_EasyMaps_0006_Quiz2-DT-1.jpg\",\r\n \"TWAY-3DOT_EasyMaps_0007_Quiz2-DT-2.jpg\",\r\n \"TWAY-3DOT_EasyMaps_0008_Quiz2-DT-3.jpg\"\r\n ], [\r\n \"TWAY-3DOT_EasyMaps_0009_Quiz3-UT-0.jpg\",\r\n \"TWAY-3DOT_EasyMaps_0010_Quiz3-UT-1.jpg\",\r\n \"TWAY-3DOT_EasyMaps_0011_Quiz3-UT-2.jpg\",\r\n \"TWAY-3DOT_EasyMaps_0012_Quiz3-UT-3.jpg\"\r\n ], [\r\n \"TWAY-3DOT_EasyMaps_0013_Quiz4-DT-0.jpg\",\r\n \"TWAY-3DOT_EasyMaps_0014_Quiz4-DT-1.jpg\",\r\n \"TWAY-3DOT_EasyMaps_0015_Quiz4-DT-2.jpg\",\r\n \"TWAY-3DOT_EasyMaps_0016_Quiz4-DT-3.jpg\"\r\n ], [\r\n \"TWAY-3DOT_EasyMaps_0017_Quiz5-UT-0.jpg\",\r\n \"TWAY-3DOT_EasyMaps_0018_Quiz5-UT-1.jpg\",\r\n \"TWAY-3DOT_EasyMaps_0019_Quiz5-UT-2.jpg\",\r\n \"TWAY-3DOT_EasyMaps_0020_Quiz5-UT-3.jpg\"\r\n ], [\r\n \"TWAY-3DOT_EasyMaps_0021_Quiz6-DT-0.jpg\",\r\n \"TWAY-3DOT_EasyMaps_0022_Quiz6-DT-1.jpg\",\r\n \"TWAY-3DOT_EasyMaps_0023_Quiz6-DT-2.jpg\",\r\n \"TWAY-3DOT_EasyMaps_0024_Quiz6-DT-3.jpg\"\r\n ], [\r\n \"TWAY-3DOT_EasyMaps_0025_Quiz7-UT-0.jpg\",\r\n \"TWAY-3DOT_EasyMaps_0026_Quiz7-UT-1.jpg\",\r\n \"TWAY-3DOT_EasyMaps_0027_Quiz7-UT-2.jpg\",\r\n \"TWAY-3DOT_EasyMaps_0028_Quiz7-UT-3.jpg\"\r\n ], [\r\n \"TWAY-3DOT_EasyMaps_0029_Quiz8-DT-0.jpg\",\r\n \"TWAY-3DOT_EasyMaps_0030_Quiz8-DT-1.jpg\",\r\n \"TWAY-3DOT_EasyMaps_0031_Quiz8-DT-2.jpg\",\r\n \"TWAY-3DOT_EasyMaps_0032_Quiz8-DT-3.jpg\"\r\n ], [\r\n \"TWAY-3DOT_EasyMaps_0033_Quiz9-UT-0.jpg\",\r\n \"TWAY-3DOT_EasyMaps_0034_Quiz9-UT-1.jpg\",\r\n \"TWAY-3DOT_EasyMaps_0035_Quiz9-UT-2.jpg\",\r\n \"TWAY-3DOT_EasyMaps_0036_Quiz9-UT-3.jpg\"\r\n ], [\r\n \"TWAY-3DOT_EasyMaps_0037_Quiz10-DT-0.jpg\",\r\n \"TWAY-3DOT_EasyMaps_0038_Quiz10-DT-1.jpg\",\r\n \"TWAY-3DOT_EasyMaps_0039_Quiz10-DT-2.jpg\",\r\n \"TWAY-3DOT_EasyMaps_0040_Quiz10-DT-3.jpg\"\r\n ]],\r\n standard: [[\r\n \"INTEL-TWAY MAP-V2_0001_Quiz1-UT-0.jpg\",\r\n \"INTEL-TWAY MAP-V2_0002_Quiz1-UT-1.jpg\",\r\n \"INTEL-TWAY MAP-V2_0003_Quiz1-UT-2.jpg\",\r\n \"INTEL-TWAY MAP-V2_0004_Quiz1-UT-3.jpg\",\r\n \"INTEL-TWAY MAP-V2_0005_Quiz1-UT-4.jpg\",\r\n \"INTEL-TWAY MAP-V2_0006_Quiz1-UT-5.jpg\",\r\n ], [\r\n \"INTEL-TWAY MAP-V2_0007_Quiz2-DT-0.jpg\",\r\n \"INTEL-TWAY MAP-V2_0008_Quiz2-DT-1.jpg\",\r\n \"INTEL-TWAY MAP-V2_0009_Quiz2-DT-2.jpg\",\r\n \"INTEL-TWAY MAP-V2_0010_Quiz2-DT-3.jpg\",\r\n \"INTEL-TWAY MAP-V2_0011_Quiz2-DT-4.jpg\",\r\n \"INTEL-TWAY MAP-V2_0012_Quiz2-DT-5.jpg\",\r\n ], [\r\n \"INTEL-TWAY MAP-V2_0013_Quiz3-UT-0.jpg\",\r\n \"INTEL-TWAY MAP-V2_0014_Quiz3-UT-1.jpg\",\r\n \"INTEL-TWAY MAP-V2_0015_Quiz3-UT-2.jpg\",\r\n \"INTEL-TWAY MAP-V2_0016_Quiz3-UT-3.jpg\",\r\n \"INTEL-TWAY MAP-V2_0017_Quiz3-UT-4.jpg\",\r\n \"INTEL-TWAY MAP-V2_0018_Quiz3-UT-5.jpg\",\r\n ], [\r\n \"INTEL-TWAY MAP-V2_0019_Quiz4-DT-0.jpg\",\r\n \"INTEL-TWAY MAP-V2_0020_Quiz4-DT-1.jpg\",\r\n \"INTEL-TWAY MAP-V2_0021_Quiz4-DT-2.jpg\",\r\n \"INTEL-TWAY MAP-V2_0022_Quiz4-DT-3.jpg\",\r\n \"INTEL-TWAY MAP-V2_0023_Quiz4-DT-4.jpg\",\r\n \"INTEL-TWAY MAP-V2_0024_Quiz4-DT-5.jpg\",\r\n ], [\r\n \"INTEL-TWAY MAP-V2_0025_Quiz5-UT-0.jpg\",\r\n \"INTEL-TWAY MAP-V2_0026_Quiz5-UT-1.jpg\",\r\n \"INTEL-TWAY MAP-V2_0027_Quiz5-UT-2.jpg\",\r\n \"INTEL-TWAY MAP-V2_0028_Quiz5-UT-3.jpg\",\r\n \"INTEL-TWAY MAP-V2_0029_Quiz5-UT-4.jpg\",\r\n \"INTEL-TWAY MAP-V2_0030_Quiz5-UT-5.jpg\",\r\n ], [\r\n \"INTEL-TWAY MAP-V2_0031_Quiz6-DT-0.jpg\",\r\n \"INTEL-TWAY MAP-V2_0032_Quiz6-DT-1.jpg\",\r\n \"INTEL-TWAY MAP-V2_0033_Quiz6-DT-2.jpg\",\r\n \"INTEL-TWAY MAP-V2_0034_Quiz6-DT-3.jpg\",\r\n \"INTEL-TWAY MAP-V2_0035_Quiz6-DT-4.jpg\",\r\n \"INTEL-TWAY MAP-V2_0036_Quiz6-DT-5.jpg\",\r\n ], [\r\n \"INTEL-TWAY MAP-V2_0037_Quiz7-UT-0.jpg\",\r\n \"INTEL-TWAY MAP-V2_0038_Quiz7-UT-1.jpg\",\r\n \"INTEL-TWAY MAP-V2_0039_Quiz7-UT-2.jpg\",\r\n \"INTEL-TWAY MAP-V2_0040_Quiz7-UT-3.jpg\",\r\n \"INTEL-TWAY MAP-V2_0041_Quiz7-UT-4.jpg\",\r\n \"INTEL-TWAY MAP-V2_0042_Quiz7-UT-5.jpg\",\r\n ], [\r\n \"INTEL-TWAY MAP-V2_0043_Quiz8-DT-0.jpg\",\r\n \"INTEL-TWAY MAP-V2_0044_Quiz8-DT-1.jpg\",\r\n \"INTEL-TWAY MAP-V2_0045_Quiz8-DT-2.jpg\",\r\n \"INTEL-TWAY MAP-V2_0046_Quiz8-DT-3.jpg\",\r\n \"INTEL-TWAY MAP-V2_0047_Quiz8-DT-4.jpg\",\r\n \"INTEL-TWAY MAP-V2_0048_Quiz8-DT-5.jpg\",\r\n ], [\r\n \"INTEL-TWAY MAP-V2_0049_Quiz9-UT-0.jpg\",\r\n \"INTEL-TWAY MAP-V2_0050_Quiz9-UT-1.jpg\",\r\n \"INTEL-TWAY MAP-V2_0051_Quiz9-UT-2.jpg\",\r\n \"INTEL-TWAY MAP-V2_0052_Quiz9-UT-3.jpg\",\r\n \"INTEL-TWAY MAP-V2_0053_Quiz9-UT-4.jpg\",\r\n \"INTEL-TWAY MAP-V2_0054_Quiz9-UT-5.jpg\",\r\n ], [\r\n \"INTEL-TWAY MAP-V2_0055_Quiz10-DT-0.jpg\",\r\n \"INTEL-TWAY MAP-V2_0056_Quiz10-DT-1.jpg\",\r\n \"INTEL-TWAY MAP-V2_0057_Quiz10-DT-2.jpg\",\r\n \"INTEL-TWAY MAP-V2_0058_Quiz10-DT-3.jpg\",\r\n \"INTEL-TWAY MAP-V2_0059_Quiz10-DT-4.jpg\",\r\n \"INTEL-TWAY MAP-V2_0060_Quiz10-DT-5.jpg\",\r\n ]]\r\n }\r\n },\r\n countdownTime: 60,\r\n crackTheCode: {\r\n characters: \"ABCDEFGHIJKLMNOPQRSTUVWXYZ 1234567890\".split(''),\r\n words: [\r\n \"ULTRABOOK\", \"THREADING\", \"INTEL\", \"KNOWLEDGE\", \"CORE\", \"GREAT\", \"POWER\", \"STRUGGLE\",\r\n \"NETWORK\", \"OPERATIONS\", \"EXPERIENCE\"\r\n ],\r\n threeWordMessages: [\r\n [\"Locate\", \"the\", \"Tap\"],\r\n [\"Capture\", \"the\", \"Traitors\"],\r\n [\"Locate\", \"Stolen\", \"Tech\"],\r\n [\"Darkness\", \"Is\", \"Safe\"],\r\n [\"Power\", \"Is\", \"Regulated\"],\r\n [\"Advance\", \"and\", \"Report\"],\r\n [\"End\", \"the\", \"Incursion\"],\r\n [\"Eliminate\", \"the\", \"Resistance\"]\r\n ],\r\n fiveWordMessages: [\r\n [\"The\", \"Sheep\", \"Must\", \"Be\", \"Controlled\"],\r\n [\"Collect\", \"Taxes\", \"from\", \"the\", \"Merchants\"],\r\n [\"Deploy\", \"Regulators\", \"to\", \"Sapo\", \"Square\"],\r\n [\"Enforce\", \"All\", \"Unregulated\", \"Power\", \"Usage\"],\r\n [\"Let\", \"Them\", \"Fight\", \"Each\", \"Other\"],\r\n [\"They\", \"Are\", \"Mere\", \"Stepping\", \"Stones\"],\r\n [\"The\", \"Overlord\", \"Controls\", \"the\", \"Power\"],\r\n [\"The\", \"Resistance\", \"Shall\", \"Be\", \"Squashed\"],\r\n [\"The\", \"Commonwealth\", \"Is\", \"No\", \"More\"]\r\n ],\r\n passMessage: [\" DECODED \"],\r\n failMessage: [\" INCOMPLETE \"]\r\n },\r\n locateTheEnemy: {\r\n pieces: [[\r\n \"content/images/swic5/locate/Game Pieces_0000_Map1-General Location.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0001_Map 2-Regional Location.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0002_Map 3A-Uptown Sector.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0003_Map 4A-Location-Stacks.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0004_Map-5A-Stacks.jpg\"\r\n ], [\r\n \"content/images/swic5/locate/Game Pieces_0000_Map1-General Location.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0001_Map 2-Regional Location.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0002_Map 3A-Uptown Sector.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0005_Map 4A-Mansion.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0006_Map 5A-Mansion.jpg\"\r\n ], [\r\n \"content/images/swic5/locate/Game Pieces_0000_Map1-General Location.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0001_Map 2-Regional Location.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0002_Map 3A-Uptown Sector.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0007_Map 4A-Warehouse.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0008_Map5A-Warehouse.jpg\"\r\n ], [\r\n \"content/images/swic5/locate/Game Pieces_0000_Map1-General Location.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0001_Map 2-Regional Location.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0009_Map 3B-Midtown Sector.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0010_Map 4B-Apartment.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0011_Map 5B-Apartments.jpg\"\r\n ], [\r\n \"content/images/swic5/locate/Game Pieces_0000_Map1-General Location.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0001_Map 2-Regional Location.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0009_Map 3B-Midtown Sector.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0012_Map 4B-PowerPlant1.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0013_Map 5B-Power Plant 1.jpg\"\r\n ], [\r\n \"content/images/swic5/locate/Game Pieces_0000_Map1-General Location.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0001_Map 2-Regional Location.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0009_Map 3B-Midtown Sector.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0014_Map 4B-Power Plant 2.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0015_Map 5B-Power Plant2.jpg\"\r\n ], [\r\n \"content/images/swic5/locate/Game Pieces_0000_Map1-General Location.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0001_Map 2-Regional Location.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0009_Map 3B-Midtown Sector.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0016_Map 4B-Subway2.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0017_Map 5B-Subway.jpg\"\r\n ], [\r\n \"content/images/swic5/locate/Game Pieces_0000_Map1-General Location.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0001_Map 2-Regional Location.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0009_Map 3B-Midtown Sector.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0016_Map 4B-Subway2.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0018_Map 5B-Subway2.jpg\"\r\n ], [\r\n \"content/images/swic5/locate/Game Pieces_0000_Map1-General Location.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0001_Map 2-Regional Location.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0019_Map 3C-Downtown Sector.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0020_Map 4C-Statue.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0021_Map 5C-Statue.jpg\"\r\n ], [\r\n \"content/images/swic5/locate/Game Pieces_0000_Map1-General Location.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0001_Map 2-Regional Location.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0019_Map 3C-Downtown Sector.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0022_Map 4C-Factory.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0023_Map 5C-Factory.jpg\"\r\n ], [\r\n \"content/images/swic5/locate/Game Pieces_0000_Map1-General Location.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0001_Map 2-Regional Location.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0019_Map 3C-Downtown Sector.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0024_Map 4C-Underground.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0025_Map 5C-Underground.jpg\"\r\n ], [\r\n \"content/images/swic5/locate/Game Pieces_0000_Map1-General Location.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0001_Map 2-Regional Location.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0019_Map 3C-Downtown Sector.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0026_Map 4C-Bowery.jpg\",\r\n \"content/images/swic5/locate/Game Pieces_0027_Map 5C-Bowery.jpg\"\r\n ]]\r\n }\r\n };\r\n\r\n var Recon = function (options) {\r\n if (!(this instanceof Recon)) {\r\n return new Recon();\r\n }\r\n\r\n var self = this;\r\n\r\n this.options = $.extend({}, defaultOptions, options);\r\n\r\n this.$currentPage = null;\r\n this.currentAudio = null;\r\n this.currentAudioDeferred = null;\r\n\r\n this.textTimeoutID = 0;\r\n\r\n this.countDown = null;\r\n this.quizContent = null;\r\n this.questionNumber = null;\r\n this.currentCountdownTime = this.options.countdownTime;\r\n\r\n this.clearanceText = \"SECURITY CLEARANCE REQUIRED::: \";\r\n this.clearanceTimeoutID = 0;\r\n this.$clearance = $('#clearanceRequiredType');\r\n\r\n this.crackTimeoutID = 0;\r\n\r\n this.quizStartTime = 0;\r\n this.quizAnswerTime = 0;\r\n this.quizAnswers = [];\r\n\r\n this.resetGame();\r\n\r\n // use window load event as it is fired after images are loaded.\r\n $(window).on('load', function () {\r\n self.introStart();\r\n });\r\n\r\n $('.page.result .return').on('click', function () {\r\n self.clearanceStart();\r\n });\r\n\r\n $('.page.result .playAudio').on('click', function () {\r\n var audioFiles = [];\r\n if ($('.smallScreen').hasClass('pass')) {\r\n audioFiles = self.$currentPage.find('.pass:visible audio');\r\n } else {\r\n audioFiles = self.$currentPage.find('.fail:visible audio');\r\n }\r\n\r\n if (audioFiles.length > 0) {\r\n var audioFile = audioFiles[Math.floor(Math.random() * audioFiles.length)];\r\n self.playAudio(audioFile);\r\n }\r\n });\r\n };\r\n\r\n /************************************\r\n * Static variables\r\n ************************************/\r\n Recon.getTimestamp = function () {\r\n if (window.performance && window.performance.now) {\r\n return window.performance.now();\r\n } else {\r\n if (window.performance && window.performance.webkitNow) {\r\n return window.performance.webkitNow();\r\n } else {\r\n return new Date().getTime();\r\n }\r\n }\r\n };\r\n\r\n Recon.gameDefaults = {\r\n callbacks: {\r\n start: function () { },\r\n answer: function () { },\r\n stop: function () { },\r\n result: function () { },\r\n exit: function () { }\r\n }\r\n };\r\n\r\n /**********************************\r\n * Helper functions\r\n ***********************************/\r\n Recon.prototype.openDoor = function () {\r\n $('.door').animate({ top: '-155px' }, this.options.doorSpeed);\r\n };\r\n\r\n Recon.prototype.closeDoor = function () {\r\n $('.door').animate({ top: '0px' }, this.options.doorSpeed);\r\n };\r\n\r\n Recon.prototype.switchPage = function (page) {\r\n $('.page').hide();\r\n\r\n this.$currentPage = $(page);\r\n this.$currentPage.show();\r\n };\r\n\r\n Recon.prototype.playAudio = function (audio) {\r\n var deferred = $.Deferred();\r\n\r\n try {\r\n this.stopAudio();\r\n\r\n this.currentAudioDeferred = deferred;\r\n this.currentAudio = audio;\r\n\r\n this.currentAudio.onended = function () {\r\n deferred.resolve();\r\n };\r\n\r\n this.currentAudio.play();\r\n } catch(e) {\r\n deferred.resolve();\r\n }\r\n return deferred.promise();\r\n };\r\n\r\n Recon.prototype.stopAudio = function () {\r\n try {\r\n if (this.currentAudio != null) {\r\n this.currentAudio.pause();\r\n this.currentAudio.currentTime = 0;\r\n this.currentAudio = null;\r\n this.currentAudioDeferred = null;\r\n }\r\n } catch(e) {}\r\n };\r\n\r\n Recon.prototype.increaseProgressMeter = function () {\r\n var img = $('.progressMeter img[src$=\"lightsOff.png\"]:first');\r\n if(img.length > 0) {\r\n var src = img.attr('src').replace('lightsOff.png', 'lightsOn.png');\r\n img.attr('src', src);\r\n }\r\n };\r\n\r\n Recon.prototype.getAvailableClearanceLevels = function () {\r\n return IREP.callApi({ url: 'swic5/clearancelevel/available', type: 'GET' });\r\n };\r\n\r\n Recon.prototype.getReconDetails = function () {\r\n return IREP.callApi({ url: 'swic5/recon/details', type: 'GET' });\r\n };\r\n\r\n Recon.prototype.slideOutLinks = function () {\r\n $('a.hq').animate({ left: '-190px' }, this.options.doorSpeed);\r\n $('a.leaderboard').animate({ right: '-192px' }, this.options.doorSpeed);\r\n };\r\n\r\n Recon.prototype.slideInLinks = function () {\r\n $('a.hq').animate({ left: '-30px' }, this.options.doorSpeed);\r\n $('a.leaderboard').animate({ right: '-30px' }, this.options.doorSpeed);\r\n };\r\n\r\n Recon.prototype.shuffle = function (array, rand) {\r\n var i = array.length, j, swap;\r\n if (!rand) rand = Math;\r\n while (--i) {\r\n j = rand.random() * (i + 1) | 0;\r\n swap = array[i];\r\n array[i] = array[j];\r\n array[j] = swap;\r\n }\r\n return array;\r\n };\r\n\r\n Recon.prototype.padRight = function (str, length, characters) {\r\n return str + Array(length - str.length + 1).join(characters || \" \")\r\n }\r\n\r\n Recon.prototype.resetGame = function () {\r\n this.game = $.extend({}, Recon.gameDefaults);\r\n }\r\n\r\n Recon.prototype.typeText = function ($elem) {\r\n var self = this;\r\n var deferred = $.Deferred();\r\n\r\n var text = $elem.data('text');\r\n var textLength = text.length;\r\n var textPosition = 0;\r\n var textBuffer = \"\";\r\n\r\n $elem.show();\r\n (function type() {\r\n if (textPosition > textLength) {\r\n deferred.resolve();\r\n return;\r\n }\r\n\r\n nextChar = text.charAt(textPosition++);\r\n\r\n textBuffer = textBuffer + nextChar;\r\n $elem.html(textBuffer);\r\n\r\n self.textTimeoutID = setTimeout(type, self.options.clearanceTextSpeed);\r\n }());\r\n\r\n return deferred.promise();\r\n };\r\n\r\n Recon.prototype.delay = function (timeout) {\r\n var deferred = $.Deferred();\r\n\r\n setTimeout(function () {\r\n deferred.resolve();\r\n }, timeout);\r\n\r\n return deferred.promise();\r\n };\r\n\r\n Recon.prototype.updateExperiencePoints = function (experiencePoints) {\r\n this.options.experiencePoints = experiencePoints;\r\n\r\n if (experiencePoints < 500) {\r\n $('.expierenceMeter span').animate({ width: (experiencePoints / 500) * 160 }, 1000);\r\n } else {\r\n $('.expierenceMeter span').animate({ width: 160 }, 1000)\r\n }\r\n };\r\n\r\n Recon.prototype.updateExperienceLevel = function (experienceLevel) {\r\n if (this.options.experienceLevel === 0 && this.options.experienceLevel != experienceLevel) {\r\n $('.expierenceMeter img').attr('src', IREP.options.appUrl + 'content/images/swic5/recon/rank' + experienceLevel + '.png').fadeIn();\r\n } else if (this.options.experienceLevel !== 0 && this.options.experienceLevel != experienceLevel) {\r\n $('.expierenceMeter img').fadeOut().promise().done(function () {\r\n $('.expierenceMeter img').attr('src', IREP.options.appUrl + 'content/images/swic5/recon/rank' + experienceLevel + '.png').fadeIn();\r\n });\r\n }\r\n\r\n $('.smallScreen').attr('class', 'smallScreen');\r\n\r\n switch (experienceLevel) {\r\n case 0:\r\n $('.code h1').text('CRACK THE CODE');\r\n $('.smallScreen').addClass('crackTheCode');\r\n break;\r\n case 1:\r\n $('.code h1').text('LOCATE THE ENEMY');\r\n $('.smallScreen').addClass('locateTheEnemy');\r\n break;\r\n default:\r\n $('.code h1').text('MOVE THE FRONT LINE');\r\n $('.smallScreen').addClass('tway');\r\n break;\r\n }\r\n\r\n this.options.experienceLevel = experienceLevel;\r\n };\r\n\r\n Recon.prototype.updateProgressMeter = function (progressMeterCount) {\r\n var $lightsOn = $('.progressMeter img[src$=\"lightsOn.png\"]');\r\n var todo = progressMeterCount - $lightsOn.length;\r\n if (todo > 0) {\r\n var $lightsOff = $('.progressMeter img[src$=\"lightsOff.png\"]');\r\n for (var i = 0; i < todo && i < $lightsOff.length; i++) {\r\n var src = $($lightsOff[i]).attr('src').replace('lightsOff.png', 'lightsOn.png');\r\n $($lightsOff[i]).attr('src', src);\r\n }\r\n }\r\n };\r\n\r\n Recon.prototype.scrollTop = function () {\r\n $(\"html, body\").animate({ scrollTop: 0 }, 0);\r\n };\r\n\r\n /***********************************************\r\n * TWay game\r\n ***********************************************/\r\n\r\n Recon.prototype.selectTWayMap = function () {\r\n this.options.tway.selectedPosition = 0;\r\n this.options.tway.selectedMap = Math.round(Math.random() * (this.options.tway.maps.length - 1));\r\n\r\n this.displayTWayMap();\r\n };\r\n\r\n Recon.prototype.displayTWayMap = function () {\r\n $('.tway img').attr('src', this.options.tway.maps[this.options.tway.selectedMap][this.options.tway.selectedPosition]);\r\n };\r\n\r\n Recon.prototype.displayNextTWayMap = function () {\r\n this.options.tway.selectedPosition++;\r\n\r\n this.displayTWayMap();\r\n };\r\n\r\n /*****************************************\r\n * Intro page \r\n *****************************************/\r\n Recon.prototype.introStart = function () {\r\n var self = this;\r\n var done = false;\r\n\r\n var click = function () {\r\n //$(this).off(click);\r\n done = true;\r\n self.introStop();\r\n }\r\n\r\n this.switchPage('#intro');\r\n $('#recon').addClass('showCursor');\r\n\r\n if ($('#mobileAppContainer').length === 0) {\r\n this.playAudio(self.$currentPage.find('.shortWave')[0]).then(function () {\r\n return self.playAudio(self.$currentPage.find('.modem')[0]);\r\n }).then(function () {\r\n return self.typeText(self.$currentPage.find('.established'));\r\n }).then(function() {\r\n return self.delay(2000);\r\n }).then(function () {\r\n return self.typeText(self.$currentPage.find('.required'));\r\n }).then(function () {\r\n return self.delay(2000);\r\n }).done(function () {\r\n $('#contentContainer, #mobileAppContainer').off('click', click);\r\n if (!done) {\r\n self.introStop();\r\n }\r\n })\r\n\r\n this.introAddRings();\r\n } else {\r\n self.typeText(self.$currentPage.find('.established')).then(function () {\r\n return self.delay(2000);\r\n }).then(function () {\r\n return self.typeText(self.$currentPage.find('.required'));\r\n }).then(function () {\r\n return self.delay(2000);\r\n }).done(function () {\r\n $('#contentContainer, #mobileAppContainer').off('click', click);\r\n if (!done) {\r\n self.introStop();\r\n }\r\n });\r\n }\r\n\r\n $('#contentContainer, #mobileAppContainer').one('click', click);\r\n };\r\n\r\n Recon.prototype.introStop = function () {\r\n this.stopAudio();\r\n\r\n $('#recon').removeClass('showCursor');\r\n\r\n this.clearanceStart();\r\n };\r\n\r\n Recon.prototype.introAddRings = function () {\r\n var self = this;\r\n\r\n var src = $('.ring').data('src');\r\n var ring = $('', { src: src });\r\n $('.ring').append(ring);\r\n \r\n ring.animate({\r\n width: 1200,\r\n height: 1200,\r\n top: -410,\r\n left: -242,\r\n opacity: 0\r\n }, {\r\n duration: 12000,\r\n progress: function (a, b, c) {\r\n if (b >= .15 && $(this).data('spawn') == null && self.$currentPage.attr('id') === 'intro') {\r\n self.introAddRings();\r\n $(this).data('spawn', 1);\r\n }\r\n },\r\n done: function () {\r\n $(this).hide();\r\n $(this).remove();\r\n }\r\n });\r\n };\r\n\r\n Recon.prototype.introTextStart = function () {\r\n var self = this;\r\n var maxLength = 80;\r\n var textLength = this.clearanceText.length;\r\n var textPosition = 0;\r\n var textBuffer = \"\";\r\n\r\n (function type() {\r\n if (textPosition > textLength) {\r\n textPosition = 0;\r\n }\r\n\r\n nextChar = self.clearanceText.charAt(textPosition++);\r\n\r\n textBuffer = textBuffer + nextChar;\r\n if (maxLength != 0 && textBuffer.length > maxLength) {\r\n textBuffer = textBuffer.slice(1, textBuffer.length);\r\n }\r\n\r\n self.$clearance.html(textBuffer);\r\n\r\n self.clearanceTimeoutID = setTimeout(type, self.options.clearanceTextSpeed);\r\n }());\r\n };\r\n\r\n Recon.prototype.introTextStop = function () {\r\n clearTimeout(this.clearanceTimeoutID);\r\n };\r\n\r\n /***********************************\r\n * Clearance selection page\r\n ***********************************/\r\n Recon.prototype.clearanceStart = function () {\r\n var self = this;\r\n\r\n this.closeDoor();\r\n this.slideInLinks();\r\n \r\n this.clearanceUpdateReconDetails().done(function() {\r\n self.switchPage('#clearance');\r\n });\r\n\r\n $('#clearance').find('ul').off().one('click', 'li', function () {\r\n self.options.clearanceLevel = $(this).data('clearance-level');\r\n\r\n self.quizStart(self.options.clearanceLevel);\r\n });\r\n };\r\n\r\n Recon.prototype.clearanceStop = function () {\r\n\r\n };\r\n\r\n Recon.prototype.clearanceUpdateReconDetails = function () {\r\n var self = this;\r\n\r\n return this.getReconDetails().done(function (response) {\r\n self.clearanceUpdateLevels(response.clearanceLevels);\r\n self.updateExperiencePoints(response.experiencePoints);\r\n self.updateExperienceLevel(response.experienceLevel);\r\n self.updateProgressMeter(response.progressMeterCount);\r\n });\r\n };\r\n\r\n Recon.prototype.clearanceUpdateLevels = function (clearanceLevels) {\r\n var $clearanceLevels = $('#clearance ul');\r\n $clearanceLevels.empty();\r\n $.each(clearanceLevels, function (i, e) {\r\n var $li = $('
  • ', { text: e.name, data: { 'clearance-level': e.level } });\r\n $clearanceLevels.append($li);\r\n });\r\n\r\n if (clearanceLevels.length === 0) {\r\n $clearanceLevels.hide();\r\n $('#clearance .doneForDay').show();\r\n $('#clearance :not(.doneForDay):not(h1)').hide();\r\n }\r\n };\r\n\r\n /****************************************\r\n * Quiz page, where the fun goes\r\n ****************************************/\r\n Recon.prototype.quizGetTime = function () {\r\n return Math.round(((Recon.getTimestamp() - this.quizStartTime)) / 1000, 0);\r\n };\r\n\r\n Recon.prototype.quizStart = function (clearanceLevel) {\r\n var self = this;\r\n\r\n switch (this.options.experienceLevel) {\r\n case 0:\r\n this.crackSetup();\r\n break;\r\n case 1:\r\n this.locateSetup();\r\n break;\r\n default:\r\n this.twaySetup();\r\n break;\r\n }\r\n\r\n self.scrollTop();\r\n self.switchPage('#blank');\r\n this.quizGetClearanceContent(clearanceLevel).done(function (response) {\r\n self.questionNumber = 0;\r\n self.quizAnswers = [];\r\n self.quizStartTime = Recon.getTimestamp();\r\n self.quizAnswerTime = self.quizGetTime();\r\n self.quizContent = response.content;\r\n self.currentCountdownTime = self.options.countdownTime;\r\n self.switchPage('#quiz');\r\n\r\n self.$currentPage.find('.countdownTime').html(self.options.countdownTime);\r\n self.quizDisplayNextQuestion();\r\n\r\n self.countDown = new IREP.Countdown({ updateTime: 1000, totalTime: self.options.countdownTime * 1000 });\r\n self.countDown.start().progress(function (timings) {\r\n self.$currentPage.find('.countdownTime').html(timings.remaining / 1000);\r\n }).done(function (timings) {\r\n self.quizStop(timings);\r\n }).fail(function (timings) {\r\n self.quizStop(timings);\r\n });\r\n\r\n self.openDoor();\r\n self.slideOutLinks();\r\n self.game.callbacks.start.call(self);\r\n }).fail(function() {\r\n self.clearanceStart();\r\n });\r\n };\r\n\r\n Recon.prototype.quizGetClearanceContent = function (clearanceLevel) {\r\n return IREP.callApi({ url: 'swic5/quiz', data: { clearanceLevel: clearanceLevel } });\r\n };\r\n\r\n Recon.prototype.quizDisplayNextQuestion = function () {\r\n var question = this.quizContent.questions[this.questionNumber];\r\n\r\n if (question != null) {\r\n this.$currentPage.find('.question').html(question.questionText);\r\n this.quizDisplayAnswers();\r\n\r\n this.questionNumber++;\r\n } else {\r\n this.countDown.stop();\r\n }\r\n };\r\n\r\n Recon.prototype.quizDisplayAnswers = function () {\r\n var self = this;\r\n\r\n var question = this.quizContent.questions[this.questionNumber];\r\n var $answers = this.$currentPage.find('.answers');\r\n $answers.empty();\r\n\r\n $.each(question.answers, function (i, e) {\r\n var $li = $('
  • ', { html: e.answerText, data: { 'answer-id': e.answerId, 'question-id': question.questionId } });\r\n $answers.append($li);\r\n })\r\n\r\n $answers.off().one('click', 'li', function () {\r\n var questionId = $(this).data('question-id');\r\n var answerId = $(this).data('answer-id');\r\n if (answerId != null) {\r\n self.quizSelectAnswer(questionId, answerId);\r\n }\r\n });\r\n };\r\n\r\n Recon.prototype.quizSelectAnswer = function (questionId, answerId) {\r\n this.quizLogAudit(answerId);\r\n this.quizAnswers.push({ questionId: questionId, answerId: answerId });\r\n this.quizDisplayNextQuestion();\r\n this.game.callbacks.answer.call(self);\r\n };\r\n\r\n Recon.prototype.quizLogAudit = function (answerId) {\r\n var currentTime = this.quizGetTime();\r\n var answerTime = currentTime - this.quizAnswerTime;\r\n this.quizAnswerTime = currentTime;\r\n\r\n var data = { \"auditUID\": this.quizContent.auditUID, \"answerId\": answerId, \"answerTime\": answerTime };\r\n return IREP.callApi({ url: 'swic5/audit/answer', type: 'POST', data: data });\r\n };\r\n\r\n Recon.prototype.quizStop = function (timings) {\r\n var self = this;\r\n\r\n this.game.callbacks.stop.call(self);\r\n var questions = [].concat(this.quizContent.questions);\r\n var unanswered = [].concat(questions.splice(this.quizAnswers.length, questions.length - this.quizAnswers.length));\r\n\r\n $.each(unanswered, function (i, e) {\r\n self.quizAnswers.push({ questionId: e.questionId, answerId: 0 });\r\n });\r\n\r\n this.switchPage('#calculating');\r\n this.quizSubmitAnswers(timings.elapsed / 1000).done(function (data) {\r\n self.increaseProgressMeter();\r\n\r\n self.game.callbacks.result.call(self, data);\r\n }).fail(function () {\r\n self.clearanceStart();\r\n });\r\n };\r\n\r\n Recon.prototype.quizSubmitAnswers = function (time) {\r\n var data = {\r\n activityUID: this.quizContent.activityUID,\r\n auditUID: this.quizContent.auditUID,\r\n time: time,\r\n results: this.quizAnswers\r\n };\r\n\r\n return IREP.callApi({ url: 'swic5/quiz', type: 'POST', data: data });\r\n };\r\n\r\n /******************************\r\n * Crack the Code\r\n ******************************/\r\n Recon.prototype.crackSetup = function () {\r\n var self = this;\r\n\r\n $('.smallScreen').removeClass('pass').removeClass('fail');\r\n $('#crackTheCodeResult h2 ~ p').remove();\r\n\r\n this.game = $.extend(true, {}, Recon.gameDefaults, {\r\n callbacks: {\r\n start: this.crackStart,\r\n stop: this.crackStop,\r\n result: this.crackResult\r\n }\r\n })\r\n };\r\n\r\n Recon.prototype.crackStart = function() {\r\n this.crackUpdateLettersRandomly();\r\n };\r\n\r\n Recon.prototype.crackStop = function() {\r\n \r\n };\r\n\r\n Recon.prototype.crackResult = function (result) {\r\n this.switchPage('#crackTheCodeResult');\r\n\r\n this.$currentPage.find('.right').text(result.right);\r\n this.$currentPage.find('.total').text(result.total);\r\n this.$currentPage.find('.seconds').text(result.seconds);\r\n\r\n this.$currentPage.find('.pass,.fail').hide();\r\n\r\n var messages = [];\r\n var message = [];\r\n\r\n if (result.clearanceLevel === 2) {\r\n messages = this.options.crackTheCode.threeWordMessages;\r\n } else {\r\n messages = this.options.crackTheCode.fiveWordMessages;\r\n }\r\n\r\n message = [].concat(messages[Math.floor(Math.random() * messages.length)]);\r\n\r\n var numberWrong = this.quizContent.questions.length - result.right;\r\n numberWrong = Math.min(message.length, numberWrong);\r\n\r\n var numbers = [];\r\n for (var i = 0; i < message.length; ++i) {\r\n numbers.push(i);\r\n }\r\n this.shuffle(numbers);\r\n\r\n for (var i = 0; i < numberWrong; i++) {\r\n var word = message[numbers[i]];\r\n\r\n for (var l = 0; l < word.length; l++) {\r\n word = word.replace(word[l], '*');\r\n }\r\n\r\n message[numbers[i]] = word;\r\n }\r\n\r\n $.each(message, function (i, e) {\r\n var $p = $('

    ', { text: e });\r\n $p.insertBefore('#crackTheCodeResult h2 ~ div');\r\n });\r\n \r\n\r\n if (result.pass) {\r\n $('.smallScreen').addClass('pass');\r\n this.crackUpdateLettersToWord(this.options.crackTheCode.passMessage, true);\r\n\r\n var passMessages = this.$currentPage.find('p.pass');\r\n $(passMessages[Math.floor(Math.random() * passMessages.length)]).show();\r\n } else {\r\n $('.smallScreen').addClass('fail');\r\n this.crackUpdateLettersToWord(this.options.crackTheCode.failMessage, true);\r\n\r\n var failMessages = this.$currentPage.find('p.fail');\r\n $(failMessages[Math.floor(Math.random() * failMessages.length)]).show();\r\n }\r\n };\r\n\r\n Recon.prototype.crackUpdateLettersRandomly = function () {\r\n var self = this;\r\n clearTimeout(this.crackTimeoutID);\r\n\r\n var $letters = $('.letter');\r\n $.each($letters, function (i, e) {\r\n var chars = self.options.crackTheCode.characters.slice(0);\r\n var char = chars[Math.floor(Math.random() * chars.length)];\r\n $(e).text(char);\r\n });\r\n\r\n self.crackTimeoutID = setTimeout(function () {\r\n self.crackUpdateLettersRandomly();\r\n }, 100);\r\n };\r\n\r\n Recon.prototype.crackUpdateLettersToWord = function (word, once) {\r\n var self = this;\r\n clearTimeout(this.crackTimeoutID);\r\n\r\n var letters = [];\r\n if (word == null) {\r\n word = this.options.crackTheCode.words[Math.floor(Math.random() * this.options.crackTheCode.words.length)];\r\n }\r\n\r\n word = this.padRight(word, 12)\r\n\r\n if (once == null) {\r\n once = false;\r\n }\r\n\r\n var $letters = $('.letter');\r\n \r\n $.each($letters, function (index, e) {\r\n var chars = self.options.crackTheCode.characters.slice(0);\r\n arr = self.shuffle(chars);\r\n letters[index] = { found: false, letters: arr };\r\n });\r\n\r\n this.crackTimeoutID = setTimeout(function updateWord() {\r\n $.each($letters, function (index, e) {\r\n var obj = letters[index];\r\n if (obj.found === false) {\r\n var char = obj.letters.pop();\r\n $(e).text(char);\r\n if (char === word[index]) {\r\n obj.found = true;\r\n }\r\n }\r\n });\r\n\r\n var left = $.grep(letters, function (e, i) {\r\n return e.found === false\r\n });\r\n\r\n if (left.length > 0) {\r\n self.crackTimeoutID = setTimeout(updateWord, 100);\r\n } else if(once === false) {\r\n self.crackTimeoutID = setTimeout(function () {\r\n self.crackUpdateLettersToWord()\r\n }, 5000)\r\n }\r\n\r\n }, 100);\r\n\r\n var currentLetters = letters[$letters.length - 1];\r\n };\r\n\r\n /****************************\r\n * Locate the enemy\r\n ***************************/\r\n Recon.prototype.locateSetup = function () {\r\n this.game = $.extend(true, {}, Recon.gameDefaults, {\r\n callbacks: {\r\n start: this.locateStart,\r\n stop: this.locateStop,\r\n result: this.locateResult\r\n }\r\n })\r\n };\r\n\r\n Recon.prototype.locateStop = function () {\r\n\r\n };\r\n\r\n Recon.prototype.locateStart = function () {\r\n $('.smallScreen img').css('opacity', '1');\r\n $($('.smallScreen img')[4]).attr('src', IREP.options.appUrl + this.options.locateTheEnemy.pieces[0][0]);\r\n };\r\n\r\n Recon.prototype.locateResult = function (result) {\r\n var self = this;\r\n\r\n this.switchPage('#locateTheEnemyResult');\r\n\r\n this.$currentPage.find('.located, .notLocated').hide();\r\n this.$currentPage.find('.right').text(result.right);\r\n this.$currentPage.find('.total').text(result.total);\r\n this.$currentPage.find('.seconds').text(result.seconds);\r\n\r\n this.$currentPage.find('.pass,.fail').hide();\r\n\r\n var pieces = [].concat(this.options.locateTheEnemy.pieces[Math.floor(Math.random() * this.options.locateTheEnemy.pieces.length)]);\r\n\r\n var $imgs = $('.smallScreen img');\r\n\r\n $($imgs[4]).attr('src', IREP.options.appUrl + pieces[0]);\r\n $($imgs[3]).attr('src', IREP.options.appUrl + pieces[1]);\r\n $($imgs[2]).attr('src', IREP.options.appUrl + pieces[2]);\r\n $($imgs[1]).attr('src', IREP.options.appUrl + pieces[3]);\r\n $($imgs[0]).attr('src', IREP.options.appUrl + pieces[4]);\r\n\r\n var moves = Math.floor(result.right / result.total * pieces.length);\r\n var current = 4;\r\n\r\n if (moves > 0) {\r\n moves--;\r\n $($imgs[4]).animate({ opacity: 0 }, 2000).promise().then(function () {\r\n moves--;\r\n if (moves > 0) {\r\n return $($imgs[3]).animate({ opacity: 0 }, 2000).promise()\r\n }\r\n }).then(function () {\r\n moves--;\r\n if (moves > 0) {\r\n return $($imgs[2]).animate({ opacity: 0 }, 2000).promise()\r\n }\r\n }).then(function () {\r\n moves--;\r\n if (moves > 0) {\r\n return $($imgs[1]).animate({ opacity: 0 }, 2000).promise()\r\n }\r\n });\r\n }\r\n\r\n if (result.pass) {\r\n this.$currentPage.find('.located').show();\r\n $('.smallScreen').addClass('pass');\r\n this.crackUpdateLettersToWord(this.options.crackTheCode.passMessage, true);\r\n\r\n var passMessages = this.$currentPage.find('p.pass');\r\n $(passMessages[Math.floor(Math.random() * passMessages.length)]).show();\r\n } else {\r\n this.$currentPage.find('.notLocated').show();\r\n $('.smallScreen').addClass('fail');\r\n this.crackUpdateLettersToWord(this.options.crackTheCode.failMessage, true);\r\n\r\n var failMessages = this.$currentPage.find('p.fail');\r\n $(failMessages[Math.floor(Math.random() * failMessages.length)]).show();\r\n }\r\n };\r\n\r\n /******************************\r\n * T-Way? This-Way? That-Way? There-Way?\r\n ******************************/\r\n Recon.prototype.twaySetup = function () {\r\n this.game = $.extend(true, {}, Recon.gameDefaults, {\r\n callbacks: {\r\n start: this.twayStart,\r\n stop: this.twayStop,\r\n result: this.twayResult\r\n }\r\n });\r\n };\r\n\r\n Recon.prototype.twayStart = function () {\r\n var self = this;\r\n\r\n switch (this.options.clearanceLevel) {\r\n case 2:\r\n this.options.tway.selectedMap = [].concat(this.options.tway.maps.easy[Math.floor(Math.random() * this.options.tway.maps.easy.length)])\r\n break;\r\n default:\r\n this.options.tway.selectedMap = [].concat(this.options.tway.maps.standard[Math.floor(Math.random() * this.options.tway.maps.standard.length)])\r\n break;\r\n };\r\n\r\n $('.smallScreen .imgPlate').empty();\r\n $.each(this.options.tway.selectedMap, function (i, e) {\r\n var $img = $('', { src: '/content/images/asmo/2014swic5/tway/' + e, css: { display: i == 0 ? 'block' : 'none' } });\r\n $('.smallScreen .imgPlate').append($img);\r\n });\r\n };\r\n\r\n Recon.prototype.twayStop = function () {\r\n\r\n };\r\n\r\n Recon.prototype.twayResult = function (result) {\r\n var self = this;\r\n\r\n this.switchPage('#twayResult');\r\n\r\n this.$currentPage.find('.located, .notLocated').hide();\r\n this.$currentPage.find('.right').text(result.right);\r\n this.$currentPage.find('.total').text(result.total);\r\n this.$currentPage.find('.seconds').text(result.seconds);\r\n\r\n this.$currentPage.find('.pass,.fail').hide();\r\n\r\n var moves = Math.floor(result.right / result.total * this.options.tway.selectedMap.length);\r\n (function fadeInStep(moves) {\r\n if (moves == 0) {\r\n return;\r\n }\r\n $($('.smallScreen .imgPlate img:hidden')[0]).fadeIn(2000, function () {\r\n fadeInStep(--moves);\r\n })\r\n }(moves))\r\n \r\n\r\n if (result.pass) {\r\n this.$currentPage.find('.located').show();\r\n $('.smallScreen').addClass('pass');\r\n this.crackUpdateLettersToWord(this.options.crackTheCode.passMessage, true);\r\n\r\n var passMessages = this.$currentPage.find('p.pass');\r\n $(passMessages[Math.floor(Math.random() * passMessages.length)]).show();\r\n } else {\r\n this.$currentPage.find('.notLocated').show();\r\n $('.smallScreen').addClass('fail');\r\n this.crackUpdateLettersToWord(this.options.crackTheCode.failMessage, true);\r\n\r\n var failMessages = this.$currentPage.find('p.fail');\r\n $(failMessages[Math.floor(Math.random() * failMessages.length)]).show();\r\n }\r\n };\r\n\r\n return Recon;\r\n}());","var IREP = IREP || {};\r\n\r\nIREP.SWIC6 = (function () {\r\n var defaultOptions = {\r\n countdownTime: 60,\r\n useApi: true\r\n };\r\n\r\n var SWIC6 = function (options) {\r\n var self = this;\r\n\r\n this.options = $.extend({}, defaultOptions, options);\r\n\r\n this.originalCircle = $('.indicator svg').clone(); // save a copy that hasn't started counting down.\r\n\r\n this.poorMansPreloader();\r\n\r\n try {\r\n _gaq.push(['_setCustomerVar', 1, 'SWIC2015', 'yes', 1]);\r\n _gaq.push(['_setCustomerVar', 2, 'SWIC2015', 'yes', 2]);\r\n _gaq.push(['_trackEvent', 'SWIC2015', 'visit']);\r\n } catch(e) {}\r\n\r\n };\r\n\r\n SWIC6.getTimestamp = function () {\r\n if (window.performance && window.performance.now) {\r\n return window.performance.now();\r\n } else {\r\n if (window.performance && window.performance.webkitNow) {\r\n return window.performance.webkitNow();\r\n } else {\r\n return new Date().getTime();\r\n }\r\n }\r\n };\r\n\r\n SWIC6.prototype.delay = function (timeout) {\r\n var deferred = $.Deferred();\r\n\r\n setTimeout(function () {\r\n deferred.resolve();\r\n }, timeout);\r\n\r\n return deferred.promise();\r\n };\r\n\r\n SWIC6.prototype.track = function(type, label, value, data) {\r\n IREP.track('SWIC6', type, label, value, data);\r\n try {\r\n _gaq.push(['_trackEvent', 'SWIC6', type, label, value]);\r\n } catch(e) {}\r\n };\r\n\r\n SWIC6.prototype.trackRecon = function(label, value) {\r\n this.track('recon', label, value, this.options.mode === 'mobile' ? 1 : 0);\r\n };\r\n\r\n SWIC6.prototype.trackNavigation = function (label, value) {\r\n this.track('navigation', label, value, this.options.mode === 'mobile' ? 1 : 0);\r\n };\r\n\r\n SWIC6.prototype.trackGarage = function (label) {\r\n this.track('garage', label, null, this.options.mode === 'mobile' ? 1 : 0)\r\n };\r\n\r\n SWIC6.prototype.trackLeaderboard = function (label) {\r\n this.track('leaderboards', label, null, this.options.mode === 'mobile' ? 1 : 0)\r\n };\r\n\r\n SWIC6.prototype.trackStory = function (label) {\r\n this.track('story', label, null, this.options.mode === 'mobile' ? 1 : 0)\r\n };\r\n\r\n SWIC6.prototype.animateRings = function () {\r\n var oldFill = '#58595B';\r\n var loadFill = '#FFF';\r\n $('[class^=ring]').css('fill', oldFill);\r\n var i = 10;\r\n this.animateRingsIntervalID = setInterval(function () {\r\n var old = i + 1;\r\n if (old > 10) {\r\n old = 0;\r\n }\r\n\r\n $('.ring' + old).css('fill', oldFill);\r\n $('.ring' + i).css('fill', loadFill);\r\n i--;\r\n if (i < 0) {\r\n i = 10;\r\n }\r\n }, 100);\r\n };\r\n\r\n SWIC6.prototype.showMoon = function () {\r\n var self = this;\r\n var deferred = $.Deferred();\r\n\r\n $('#moon-svg').css('opacity', '1').show();\r\n\r\n self.animateRings();\r\n this.delay(2000).then(function () {\r\n deferred.resolve();\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n SWIC6.prototype.hideMoon = function () {\r\n var self = this;\r\n var deferred = $.Deferred();\r\n\r\n $('#moon-svg').css('opacity', '0');\r\n\r\n this.delay(2000).then(function () {\r\n clearInterval(self.animateRingsIntervalID);\r\n\r\n $('#moon-svg').hide();\r\n\r\n deferred.resolve();\r\n });\r\n\r\n return deferred.promise();\r\n };\r\n\r\n SWIC6.prototype.switchPage = function (element, klass) {\r\n var deferred = $.Deferred();\r\n\r\n $('.page').hide();\r\n $(element).show();\r\n\r\n $('#SWIC6').removeClass();\r\n\r\n if (typeof (klass) !== \"undefined\") {\r\n $('#SWIC6').addClass(klass);\r\n }\r\n\r\n deferred.resolve();\r\n return deferred.promise();\r\n };\r\n\r\n SWIC6.prototype.poorMansPreloader = function () {\r\n var badges = [\r\n 'ambassador.png',\r\n 'einstein.png',\r\n 'expert.png',\r\n 'smart_seller.png',\r\n 'socialite.png',\r\n 'intel_atom.png',\r\n 'intel_atom_x3.png',\r\n 'intel_celeron.png',\r\n 'intel_core.png',\r\n 'intel_core_i3.png',\r\n 'intel_core_i5.png',\r\n 'intel_core_i7.png',\r\n 'intel_core_i7__extreme_edition.png',\r\n 'intel_core_m.png',\r\n 'intel_pentium.png',\r\n 'apprentice.png',\r\n 'legend.png',\r\n 'master.png',\r\n 'novice.png'\r\n ];\r\n\r\n _.each(badges, function(badge) {\r\n $('').attr('src', '/content/images/asmo/2015swic/recon/' + badge);\r\n });\r\n }\r\n\r\n\r\n /*************************\r\n * RECON\r\n *************************/\r\n\r\n SWIC6.prototype.startRecon = function () {\r\n var self = this;\r\n\r\n $('nav [class*=nav]').fadeIn();\r\n $('#primaryNavBar').fadeIn();\r\n $('#navigationRight').fadeIn();\r\n\r\n this.switchPage('#recon', 'recon').then(function() {\r\n $('#recon').children().hide();\r\n return $.when(self.getReconsAvailable(), self.showMoon());\r\n }).then(function(recons) {\r\n self.showReconBoard(recons);\r\n });\r\n };\r\n\r\n SWIC6.prototype.getReconsAvailable = function () {\r\n var deferred = $.Deferred();\r\n if (this.options.useApi) {\r\n IREP.callApi({ url: 'swic6/recons' }).then(function (data) {\r\n deferred.resolve(data.recons);\r\n });\r\n } else {\r\n this.delay(2000).then(function() {\r\n deferred.resolve([\r\n { location: 'slot1', type: 'select2', available: true },\r\n { location: 'slot2', type: 'select4', available: true },\r\n { location: 'slot3', type: 'truefalse', available: true },\r\n { location: 'slot4', type: 'connect2', available: true },\r\n { location: 'slot5', type: 'wordreplace', available: true },\r\n { location: 'slot6', type: 'connect4', available: true },\r\n { location: 'slot7', type: 'multiplechoice', available: true },\r\n { location: 'slot8', type: 'wordreplace4', available: true },\r\n ]);\r\n });\r\n }\r\n\r\n return deferred.promise();\r\n };\r\n\r\n SWIC6.prototype.showReconBoard = function(recons) {\r\n // Placeholder override in SWIC6Mobile/SWIC6Desktop\r\n };\r\n\r\n /*************************\r\n * Recon Instructions\r\n *************************/\r\n\r\n SWIC6.prototype.startReconInstructions = function (quizType, reconUID) {\r\n var self = this;\r\n\r\n $('.glowFrame').show();\r\n this.switchPage('#instructions', quizType).then(function () {\r\n $('#instructions').off().one('touchstart click', 'svg', function (e) {\r\n var id = $(this).prop('id');\r\n\r\n if (id === \"back-svg\") {\r\n self.startRecon();\r\n } else if (id === \"begin-svg\") {\r\n self.startQuiz(quizType, reconUID);\r\n }\r\n\r\n e.stopPropagation();\r\n e.preventDefault();\r\n return false;\r\n });\r\n });\r\n };\r\n\r\n /************************\r\n * Quiz\r\n *************************/\r\n SWIC6.prototype.getQuizTime = function () {\r\n return Math.round(((SWIC6.getTimestamp() - this.quizStartTime)) / 1000, 0);\r\n };\r\n\r\n SWIC6.prototype.startQuiz = function (quizType, reconUID) {\r\n var self = this;\r\n\r\n if (this.options.mode === 'mobile') {\r\n $('#quiz .indicator').hide();\r\n $('#quiz .indicator').children().hide();\r\n } else {\r\n $('#quiz .indicator').hide();\r\n $('nav [class*=nav]').fadeOut();\r\n $('#primaryNavBar').fadeOut();\r\n $('#navigationRight').fadeOut();\r\n }\r\n\r\n $('#quiz .question').hide();\r\n $('#quiz .summary').hide();\r\n\r\n this.switchPage('#quiz', \"quiz \" + quizType).then(function () {\r\n return $.when(self.getReconDetail(quizType, reconUID), self.showMoon());\r\n }).then(function (detail) {\r\n return $.when(detail, self.hideMoon());\r\n }).then(function (detail) {\r\n self.questionNumber = 0;\r\n self.answers = [];\r\n self.reconDetail = detail;\r\n self.quizStartTime = SWIC6.getTimestamp();\r\n self.answerTime = self.getQuizTime();\r\n\r\n if (self.options.mode === 'mobile') {\r\n $('#quiz .indicator').show();\r\n $('#quiz .indicator').children().show();\r\n } else {\r\n $('#quiz .indicator').show();\r\n }\r\n\r\n $('#quiz .question').show();\r\n $('#quiz .summary').hide();\r\n\r\n $('.indicator div:first-child').empty();\r\n\r\n $.each(detail.questions, function (i, e) {\r\n $('.indicator div:first-child').append($(''));\r\n });\r\n\r\n $('.indicator div:last-child').html(60);\r\n $('.indicator svg').remove();\r\n $('.indicator div:last-child').before(self.originalCircle.clone());\r\n\r\n self.displayNextQuizQuestion();\r\n\r\n self.countDown = new IREP.Countdown({ updateTime: 1000, totalTime: self.options.countdownTime * 1000 });\r\n self.countDown.start().progress(function (timings) {\r\n $('.indicator circle').css('stroke-dashoffset', self.options.mode === 'mobile' ? '113.10px' : '245.04px');\r\n $('.indicator div:last-child').html(timings.remaining / 1000);\r\n }).done(function (timings) {\r\n self.stopQuiz(timings);\r\n }).fail(function (timings) {\r\n self.stopQuiz(timings);\r\n });\r\n\r\n self.trackRecon('attempt');\r\n });\r\n };\r\n\r\n SWIC6.prototype.getReconDetail = function (quizType, reconUID) {\r\n var self = this;\r\n\r\n var deferred = $.Deferred();\r\n\r\n if (this.options.useApi) {\r\n IREP.callApi({ url: '/swic6/recon/start', data: { uid: reconUID } }).then(function(data) {\r\n deferred.resolve(data.recon);\r\n }).fail(function() {\r\n self.startRecon();\r\n });\r\n } else {\r\n this.delay(2000).then(function() {\r\n switch (quizType) {\r\n case \"select2\":\r\n deferred.resolve(SWIC6.select2);\r\n break;\r\n case \"select4\":\r\n deferred.resolve(SWIC6.select4);\r\n break;\r\n case \"truefalse\":\r\n deferred.resolve(SWIC6.truefalse);\r\n break;\r\n case \"wordreplace\":\r\n deferred.resolve(SWIC6.wordreplace);\r\n break;\r\n case \"multiplechoice\":\r\n deferred.resolve(SWIC6.multiplechoice);\r\n break;\r\n case \"connect2\":\r\n deferred.resolve(SWIC6.connect2);\r\n break;\r\n case \"connect4\":\r\n deferred.resolve(SWIC6.connect4);\r\n break;\r\n case \"wordreplace4\":\r\n deferred.resolve(SWIC6.wordreplace4);\r\n break;\r\n }\r\n });\r\n }\r\n\r\n return deferred.promise();\r\n };\r\n\r\n SWIC6.prototype.increaseQuizIndicator = function () {\r\n $('#quiz .indicator div:first-child span:not(.completed):first').addClass('completed')\r\n };\r\n\r\n SWIC6.prototype.displayNextQuizQuestion = function () {\r\n var self = this;\r\n\r\n var question = this.reconDetail.questions[this.questionNumber];\r\n var $quiz = $('#quiz');\r\n $('#submit-svg').hide();\r\n $('#reset-svg').hide();\r\n\r\n if (question != null) {\r\n $('#quiz .question h2').html(question.questionText);\r\n this.increaseQuizIndicator();\r\n\r\n switch (this.reconDetail.type) {\r\n case \"select2\":\r\n var $select2 = $quiz.find('.select2');\r\n $select2.empty();\r\n\r\n var img0 = $(question.answers[0].answerText);\r\n img0.data('answerId', question.answers[0].answerId);\r\n img0.data('questionId', question.questionId);\r\n $select2.append(img0);\r\n \r\n $select2.append('
    ');\r\n\r\n var img1 = $(question.answers[1].answerText);\r\n img1.data('answerId', question.answers[1].answerId);\r\n img1.data('questionId', question.questionId);\r\n $select2.append(img1);\r\n\r\n $select2.off().one('click', 'img', function (e) {\r\n var answerId = $(this).data('answerId');\r\n var questionId = $(this).data('questionId');\r\n\r\n self.logReconAudit(answerId);\r\n\r\n self.answers.push({ questionId: questionId, answerId: answerId });\r\n\r\n self.displayNextQuizQuestion();\r\n\r\n e.stopPropagation();\r\n e.preventDefault();\r\n return false;\r\n });\r\n break;\r\n case \"select4\":\r\n var $select4 = $quiz.find('.select4');\r\n $select4.empty();\r\n\r\n var img0 = $(question.answers[0].answerText);\r\n img0.data('answerId', question.answers[0].answerId);\r\n img0.data('questionId', question.questionId);\r\n $select4.append(img0);\r\n\r\n var img1 = $(question.answers[1].answerText);\r\n img1.data('answerId', question.answers[1].answerId);\r\n img1.data('questionId', question.questionId);\r\n $select4.append(img1);\r\n\r\n if (question.answers.length > 2) {\r\n $select4.append('
    ');\r\n\r\n var img2 = $(question.answers[2].answerText);\r\n img2.data('answerId', question.answers[2].answerId);\r\n img2.data('questionId', question.questionId);\r\n $select4.append(img2);\r\n\r\n var img3 = $(question.answers[3].answerText);\r\n img3.data('answerId', question.answers[3].answerId);\r\n img3.data('questionId', question.questionId);\r\n $select4.append(img3);\r\n }\r\n\r\n $select4.off().one('click', 'img', function (e) {\r\n var answerId = $(this).data('answerId');\r\n var questionId = $(this).data('questionId');\r\n\r\n self.logReconAudit(answerId);\r\n\r\n self.answers.push({ questionId: questionId, answerId: answerId });\r\n\r\n self.displayNextQuizQuestion();\r\n\r\n e.stopPropagation();\r\n e.preventDefault();\r\n return false;\r\n });\r\n break;\r\n case \"truefalse\":\r\n var $truefalse = $quiz.find('.truefalse');\r\n $truefalse.empty();\r\n\r\n var truefalse0 = $('

    ', { html: question.answers[0].answerText, data: { answerId: question.answers[0].answerId, questionId: question.questionId } });\r\n $truefalse.append(truefalse0);\r\n\r\n var truefalse0 = $('
    ', { html: question.answers[1].answerText, data: { answerId: question.answers[1].answerId, questionId: question.questionId } });\r\n $truefalse.append(truefalse0);\r\n\r\n $truefalse.off().one('click', 'div', function (e) {\r\n var answerId = $(this).data('answerId');\r\n var questionId = $(this).data('questionId');\r\n\r\n self.logReconAudit(answerId);\r\n\r\n self.answers.push({ questionId: questionId, answerId: answerId });\r\n self.displayNextQuizQuestion();\r\n\r\n e.stopPropagation();\r\n e.preventDefault();\r\n return false;\r\n });\r\n break;\r\n case \"wordreplace\":\r\n var $wordreplace = $quiz.find('.wordreplace');\r\n $wordreplace.empty();\r\n\r\n var wordreplace0 = $('
    ', { html: question.answers[0].answerText, data: { answerId: question.answers[0].answerId, questionId: question.questionId } });\r\n $wordreplace.append(wordreplace0);\r\n\r\n var wordreplace1 = $('
    ', { html: question.answers[1].answerText, data: { answerId: question.answers[1].answerId, questionId: question.questionId } });\r\n $wordreplace.append(wordreplace1);\r\n\r\n var wordreplace2 = $('
    ', { html: question.answers[2].answerText, data: { answerId: question.answers[2].answerId, questionId: question.questionId } });\r\n $wordreplace.append(wordreplace2);\r\n\r\n var wordreplace3 = $('
    ', { html: question.answers[3].answerText, data: { answerId: question.answers[3].answerId, questionId: question.questionId } });\r\n $wordreplace.append(wordreplace3);\r\n\r\n $wordreplace.off().one('click', 'div', function (e) {\r\n var answerId = $(this).data('answerId');\r\n var questionId = $(this).data('questionId');\r\n\r\n self.logReconAudit(answerId);\r\n\r\n self.answers.push({ questionId: questionId, answerId: answerId });\r\n self.displayNextQuizQuestion();\r\n\r\n e.stopPropagation();\r\n e.preventDefault();\r\n return false;\r\n });\r\n\r\n break;\r\n case \"multiplechoice\":\r\n var $multiplechoice = $quiz.find('.multiplechoice');\r\n $multiplechoice.empty();\r\n\r\n var $multiplechoice0 = $('
    ', { html: question.answers[0].answerText, data: { answerId: question.answers[0].answerId, questionId: question.questionId } });\r\n $multiplechoice.append($multiplechoice0);\r\n\r\n var $multiplechoice1 = $('
    ', { html: question.answers[1].answerText, data: { answerId: question.answers[1].answerId, questionId: question.questionId } });\r\n $multiplechoice.append($multiplechoice1);\r\n\r\n var $multiplechoice2 = $('
    ', { html: question.answers[2].answerText, data: { answerId: question.answers[2].answerId, questionId: question.questionId } });\r\n $multiplechoice.append($multiplechoice2);\r\n\r\n var $multiplechoice3 = $('
    ', { html: question.answers[3].answerText, data: { answerId: question.answers[3].answerId, questionId: question.questionId } });\r\n $multiplechoice.append($multiplechoice3);\r\n\r\n $multiplechoice.off().one('click', 'div', function (e) {\r\n var answerId = $(this).data('answerId');\r\n var questionId = $(this).data('questionId');\r\n\r\n self.logReconAudit(answerId);\r\n\r\n self.answers.push({ questionId: questionId, answerId: answerId });\r\n self.displayNextQuizQuestion();\r\n\r\n e.stopPropagation();\r\n e.preventDefault();\r\n return false;\r\n });\r\n break;\r\n case \"connect2\":\r\n var $connect2 = $quiz.find('.connect2');\r\n $connect2.empty();\r\n\r\n var $connect20 = $('
    ', { html: question.answers[0].answerText, data: { answerId: question.answers[0].answerId, questionId: question.questionId } });\r\n $connect2.append($connect20);\r\n\r\n var $connect21 = $('
    ', { html: question.answers[1].answerText, data: { answerId: question.answers[1].answerId, questionId: question.questionId } });\r\n $connect2.append($connect21);\r\n\r\n var $connect22 = $('
    ', { html: question.answers[2].answerText, data: { answerId: question.answers[2].answerId, questionId: question.questionId } });\r\n $connect2.append($connect22);\r\n\r\n var $connect23 = $('
    ', { html: question.answers[3].answerText, data: { answerId: question.answers[3].answerId, questionId: question.questionId } });\r\n $connect2.append($connect23);\r\n\r\n var connect2count = 0;\r\n /*\r\n $('#submit-svg').hide();\r\n $('#submit-svg').off().one('touchstart click', function (e) {\r\n self.displayNextQuizQuestion();\r\n\r\n e.stopPropagation();\r\n e.preventDefault();\r\n return false;\r\n });\r\n \r\n $('#reset-svg').off().on('touchstart click', function (e) {\r\n connect2count = 0;\r\n $connect2.find('div').removeClass('first second');\r\n $('#submit-svg').hide();\r\n\r\n e.stopPropagation();\r\n e.preventDefault();\r\n return false;\r\n });\r\n */\r\n\r\n $connect2.off().on('click', 'div', function (e) {\r\n var answerId = $(this).data('answerId');\r\n var questionId = $(this).data('questionId');\r\n\r\n var $element = $(this);\r\n if ($element.hasClass('first') || $element.hasClass('second')) {\r\n return;\r\n }\r\n\r\n if (connect2count === 0 || connect2count === 1) {\r\n $(this).addClass('first');\r\n } else if (connect2count === 2 || connect2count === 3) {\r\n $(this).addClass('second');\r\n }\r\n /*\r\n if (connect2count === 3) {\r\n $('#submit-svg').show();\r\n }\r\n */\r\n \r\n ++connect2count;\r\n\r\n self.logReconAudit(answerId);\r\n\r\n self.answers.push({ questionId: questionId, answerId: answerId });\r\n\r\n if (connect2count >= 2) {\r\n self.displayNextQuizQuestion();\r\n }\r\n\r\n e.stopPropagation();\r\n e.preventDefault();\r\n return false;\r\n });\r\n\r\n break;\r\n case \"connect4\":\r\n var $connect4 = $quiz.find('.connect4');\r\n $connect4.empty();\r\n\r\n var $connect40 = $('
    ', { html: question.answers[0].answerText, data: { answerId: question.answers[0].answerId, questionId: question.questionId } });\r\n $connect4.append($connect40);\r\n\r\n var $connect41 = $('
    ', { html: question.answers[1].answerText, data: { answerId: question.answers[1].answerId, questionId: question.questionId } });\r\n $connect4.append($connect41);\r\n\r\n var $connect42 = $('
    ', { html: question.answers[2].answerText, data: { answerId: question.answers[2].answerId, questionId: question.questionId } });\r\n $connect4.append($connect42);\r\n\r\n var $connect43 = $('
    ', { html: question.answers[3].answerText, data: { answerId: question.answers[3].answerId, questionId: question.questionId } });\r\n $connect4.append($connect43);\r\n\r\n var $connect44 = $('
    ', { html: question.answers[4].answerText, data: { answerId: question.answers[4].answerId, questionId: question.questionId } });\r\n $connect4.append($connect44);\r\n\r\n var $connect45 = $('
    ', { html: question.answers[5].answerText, data: { answerId: question.answers[5].answerId, questionId: question.questionId } });\r\n $connect4.append($connect45);\r\n\r\n var $connect46 = $('
    ', { html: question.answers[6].answerText, data: { answerId: question.answers[6].answerId, questionId: question.questionId } });\r\n $connect4.append($connect46);\r\n\r\n var $connect47 = $('
    ', { html: question.answers[7].answerText, data: { answerId: question.answers[7].answerId, questionId: question.questionId } });\r\n $connect4.append($connect47);\r\n\r\n var connect4count = 0;\r\n $('#submit-svg').hide();\r\n $('#submit-svg').off().one('click', function (e) {\r\n self.displayNextQuizQuestion();\r\n\r\n e.stopPropagation();\r\n e.preventDefault();\r\n return false;\r\n });\r\n\r\n $('#reset-svg').off().on('click', function (e) {\r\n connect4count = 0;\r\n $connect4.find('div').removeClass('first second third fourth');\r\n $('#submit-svg').hide();\r\n\r\n e.stopPropagation();\r\n e.preventDefault();\r\n return false;\r\n });\r\n\r\n $connect4.off().on('click', 'div', function (e) {\r\n var $element = $(this);\r\n if ($element.hasClass('first') || $element.hasClass('second') || $element.hasClass('third') || $element.hasClass('fourth')) {\r\n return;\r\n }\r\n\r\n if (connect4count === 0 || connect4count === 1) {\r\n $(this).addClass('first');\r\n } else if (connect4count === 2 || connect4count === 3) {\r\n $(this).addClass('second');\r\n } else if (connect4count === 4 || connect4count === 5) {\r\n $(this).addClass('third');\r\n } else if (connect4count === 6 || connect4count === 7) {\r\n $(this).addClass('fourth');\r\n }\r\n\r\n if (connect4count === 7) {\r\n $('#submit-svg').show();\r\n }\r\n\r\n ++connect4count;\r\n\r\n e.stopPropagation();\r\n e.preventDefault();\r\n return false;\r\n });\r\n\r\n break;\r\n case \"wordreplace4\":\r\n $('#reset-svg').show();\r\n $('#submit-svg').show();\r\n\r\n var $wordreplace4 = $quiz.find('.wordreplace4');\r\n $wordreplace4.empty();\r\n\r\n var $wordreplace40 = $('
    ', { html: question.answers[0].answerText, data: { answerId: question.answers[0].answerId, questionId: question.questionId } });\r\n $wordreplace4.append($wordreplace40);\r\n\r\n var $wordreplace41 = $('
    ', { html: question.answers[1].answerText, data: { answerId: question.answers[1].answerId, questionId: question.questionId } });\r\n $wordreplace4.append($wordreplace41);\r\n\r\n var $wordreplace42 = $('
    ', { html: question.answers[2].answerText, data: { answerId: question.answers[2].answerId, questionId: question.questionId } });\r\n $wordreplace4.append($wordreplace42);\r\n\r\n var $wordreplace43 = $('
    ', { html: question.answers[3].answerText, data: { answerId: question.answers[3].answerId, questionId: question.questionId } });\r\n $wordreplace4.append($wordreplace43);\r\n\r\n var wordreplace4count = 0;\r\n \r\n $('#submit-svg').off().one('click', function (e) {\r\n self.displayNextQuizQuestion();\r\n\r\n e.stopPropagation();\r\n e.preventDefault();\r\n return false;\r\n });\r\n\r\n $('#reset-svg').off().on('click', function (e) {\r\n wordreplace4count = 0;\r\n $wordreplace4.find('div').removeClass('first second third fourth');\r\n\r\n self.logReconAudit(0);\r\n self.answers = [];\r\n\r\n e.stopPropagation();\r\n e.preventDefault();\r\n return false;\r\n });\r\n\r\n $wordreplace4.off().on('click', 'div', function (e) {\r\n var answerId = $(this).data('answerId');\r\n var questionId = $(this).data('questionId');\r\n\r\n var $element = $(this);\r\n if ($element.hasClass('first') || $element.hasClass('second') || $element.hasClass('third') || $element.hasClass('fourth')) {\r\n return;\r\n }\r\n\r\n if (wordreplace4count === 0) {\r\n $(this).addClass('first');\r\n } else if (wordreplace4count === 1) {\r\n $(this).addClass('second');\r\n } else if (wordreplace4count === 2) {\r\n $(this).addClass('third');\r\n } else if (wordreplace4count === 3) {\r\n $(this).addClass('fourth');\r\n }\r\n\r\n ++wordreplace4count;\r\n\r\n self.logReconAudit(answerId);\r\n self.answers.push({ questionId: questionId, answerId: answerId, sequenceNo: wordreplace4count });\r\n\r\n e.stopPropagation();\r\n e.preventDefault();\r\n return false;\r\n });\r\n\r\n break;\r\n }\r\n\r\n ++this.questionNumber;\r\n } else {\r\n this.countDown.stop();\r\n }\r\n };\r\n\r\n SWIC6.prototype.logReconAudit = function (answerId) {\r\n var currentTime = this.getQuizTime();\r\n var answerTime = currentTime - this.answerTime;\r\n this.answerTime = currentTime;\r\n\r\n var data = { \"auditUID\": this.reconDetail.auditUID, \"answerId\": answerId, \"answerTime\": answerTime };\r\n return IREP.callApi({ url: '/swic6/recon/audit', type: 'POST', data: data });\r\n };\r\n\r\n SWIC6.prototype.stopQuiz = function (timings) {\r\n var self = this;\r\n\r\n this.countDown = null;\r\n\r\n var unanswered = _.filter(this.reconDetail.questions, function (e, i) {\r\n return !_.any(self.answers, function (answer) { return answer.questionId == e.questionId })\r\n });\r\n\r\n $.each(unanswered, function (i, e) {\r\n self.answers.push({ questionId: e.questionId, answerId: 0 });\r\n });\r\n\r\n this.startQuizSummary(timings);\r\n };\r\n\r\n /***************************\r\n * Quiz Summary\r\n *****************************/\r\n\r\n SWIC6.prototype.startQuizSummary = function (timings) {\r\n var self = this;\r\n\r\n $('#quiz .question').hide();\r\n if (this.options.mode === 'mobile') {\r\n $('#quiz .indicator').hide();\r\n $('#quiz .indicator').children().hide();\r\n } else {\r\n $('#quiz .indicator').hide();\r\n }\r\n\r\n $.when(self.postReconResult(timings.elapsed / 1000), this.showMoon()).then(function(result) {\r\n return $.when(result, self.hideMoon());\r\n }).then(function(result) {\r\n if (self.options.mode === 'mobile') {\r\n $('#quiz .indicator').show();\r\n } else {\r\n $('nav [class*=nav]').fadeIn();\r\n $('#primaryNavBar').fadeIn();\r\n $('#navigationRight').fadeIn();\r\n }\r\n\r\n $('#quiz .summary .total').html(result.total);\r\n $('#quiz .summary .completed').html(result.completed);\r\n $('#quiz .summary .correct').html(result.correct);\r\n $('#quiz .summary .timeTaken').html(result.timeTaken);\r\n $('#quiz .summary').show();\r\n \r\n self.trackRecon('completion');\r\n\r\n if (result.correct / result.total >= 0.8) {\r\n self.trackRecon('pass');\r\n } else {\r\n self.trackRecon('fail');\r\n }\r\n });\r\n\r\n\r\n $('#quiz .summary #recon-button-svg').one('touchstart click', function (e) {\r\n self.startRecon();\r\n\r\n e.stopPropagation();\r\n e.preventDefault();\r\n return false;\r\n });\r\n };\r\n\r\n SWIC6.prototype.postReconResult = function (time) {\r\n var self = this;\r\n var deferred = $.Deferred();\r\n\r\n if (this.options.useApi) {\r\n var data = {\r\n uid: this.reconDetail.uid,\r\n activityUID: this.reconDetail.activityUID,\r\n auditUID: this.reconDetail.auditUID,\r\n time: time,\r\n results: this.answers\r\n };\r\n\r\n var headers = {};\r\n if (self.options.mode === 'mobile') {\r\n headers.Mobile = \"2.1\";\r\n }\r\n\r\n IREP.callApi({ type: 'POST', url: '/swic6/recon/result', headers: headers, data: data }).done(function(data) {\r\n deferred.resolve(data);\r\n });\r\n } else {\r\n deferred.resolve({\r\n completed: 5,\r\n correct: 5,\r\n total: 5,\r\n timeTaken: 30\r\n });\r\n }\r\n\r\n return deferred.promise();\r\n }\r\n\r\n /************************\r\n * END\r\n *************************/\r\n\r\n SWIC6.select2 = {\r\n type: 'select2',\r\n questions: [{\r\n questionText: 'Which processor has the fastest speed?',\r\n questionId: 1,\r\n answers: [{\r\n answerId: 1,\r\n answerText: ''\r\n }, {\r\n answerId: 2,\r\n answerText: ''\r\n }]\r\n }, {\r\n questionText: 'Which processor has the slowest speed?',\r\n questionId: 2,\r\n answers: [{\r\n answerId: 3,\r\n answerText: ''\r\n }, {\r\n answerId: 4,\r\n answerText: ''\r\n }]\r\n }, {\r\n questionText: 'Which processor has the fastest speed?',\r\n questionId: 3,\r\n answers: [{\r\n answerId: 5,\r\n answerText: ''\r\n }, {\r\n answerId: 6,\r\n answerText: ''\r\n }]\r\n }, {\r\n questionText: 'Which processor has the slowest speed?',\r\n questionId: 4,\r\n answers: [{\r\n answerId: 7,\r\n answerText: ''\r\n }, {\r\n answerId: 8,\r\n answerText: ''\r\n }]\r\n }, {\r\n questionText: 'Which processor has the fastest speed?',\r\n questionId: 5,\r\n answers: [{\r\n answerId: 9,\r\n answerText: ''\r\n }, {\r\n answerId: 10,\r\n answerText: ''\r\n }]\r\n }]\r\n };\r\n\r\n SWIC6.select4 = {\r\n type: 'select4',\r\n questions: [{\r\n questionText: 'Which processor has the fastest speed?',\r\n questionId: 1,\r\n answers: [{\r\n answerId: 1,\r\n answerText: ''\r\n }, {\r\n answerId: 2,\r\n answerText: ''\r\n }, {\r\n answerId: 11,\r\n answerText: ''\r\n }, {\r\n answerId: 12,\r\n answerText: ''\r\n }]\r\n }, {\r\n questionText: 'Which processor has the slowest speed?',\r\n questionId: 2,\r\n answers: [{\r\n answerId: 3,\r\n answerText: ''\r\n }, {\r\n answerId: 4,\r\n answerText: ''\r\n }, {\r\n answerId: 13,\r\n answerText: ''\r\n }, {\r\n answerId: 14,\r\n answerText: ''\r\n }]\r\n }, {\r\n questionText: 'Which processor has the fastest speed?',\r\n questionId: 3,\r\n answers: [{\r\n answerId: 5,\r\n answerText: ''\r\n }, {\r\n answerId: 6,\r\n answerText: ''\r\n }, {\r\n answerId: 15,\r\n answerText: ''\r\n }, {\r\n answerId: 16,\r\n answerText: ''\r\n }]\r\n }, {\r\n questionText: 'Which processor has the slowest speed?',\r\n questionId: 4,\r\n answers: [{\r\n answerId: 7,\r\n answerText: ''\r\n }, {\r\n answerId: 8,\r\n answerText: ''\r\n }, {\r\n answerId: 17,\r\n answerText: ''\r\n }, {\r\n answerId: 18,\r\n answerText: ''\r\n }]\r\n }, {\r\n questionText: 'Which processor has the fastest speed?',\r\n questionId: 5,\r\n answers: [{\r\n answerId: 9,\r\n answerText: ''\r\n }, {\r\n answerId: 10,\r\n answerText: ''\r\n }, {\r\n answerId: 19,\r\n answerText: ''\r\n }, {\r\n answerId: 20,\r\n answerText: ''\r\n }]\r\n }]\r\n };\r\n\r\n SWIC6.truefalse = {\r\n type: 'truefalse',\r\n questions: [{\r\n questionText: 'Is this a question with long enough text to fill 4 lines?',\r\n questionId: 1,\r\n answers: [{\r\n answerId: 1,\r\n answerText: 'True'\r\n }, {\r\n answerId: 2,\r\n answerText: 'False'\r\n }]\r\n }, {\r\n questionText: 'Is this a question with long enough text to fill 2 lines?',\r\n questionId: 1,\r\n answers: [{\r\n answerId: 1,\r\n answerText: 'True'\r\n }, {\r\n answerId: 2,\r\n answerText: 'False'\r\n }]\r\n }, {\r\n questionText: 'Is this a question with long enough text to fill 3 lines?',\r\n questionId: 1,\r\n answers: [{\r\n answerId: 1,\r\n answerText: 'True'\r\n }, {\r\n answerId: 2,\r\n answerText: 'False'\r\n }]\r\n }, {\r\n questionText: 'Is this a question with long enough text to fill 2 lines?',\r\n questionId: 1,\r\n answers: [{\r\n answerId: 1,\r\n answerText: 'True'\r\n }, {\r\n answerId: 2,\r\n answerText: 'False'\r\n }]\r\n }, {\r\n questionText: 'Is this a question with long enough text to fill 3 lines?',\r\n questionId: 1,\r\n answers: [{\r\n answerId: 1,\r\n answerText: 'True'\r\n }, {\r\n answerId: 2,\r\n answerText: 'False'\r\n }]\r\n }]\r\n };\r\n\r\n SWIC6.wordreplace = {\r\n type: 'wordreplace',\r\n questions: [{\r\n questionText: '_________________ processors are installed on desktop computers.',\r\n questionId: 1,\r\n answers: [{\r\n answerId: 1,\r\n answerText: 'Intel Celeron'\r\n }, {\r\n answerId: 2,\r\n answerText: 'Intel Core i3'\r\n }, {\r\n answerId: 3,\r\n answerText: 'Intel Core i5'\r\n }, {\r\n answerId: 4,\r\n answerText: 'Intel Core i7'\r\n }]\r\n }, {\r\n questionText: '_________________ processors are installed on mobile computers.',\r\n questionId: 1,\r\n answers: [{\r\n answerId: 1,\r\n answerText: 'Intel Celeron'\r\n }, {\r\n answerId: 2,\r\n answerText: 'Intel Core i3'\r\n }, {\r\n answerId: 3,\r\n answerText: 'Intel Core i5'\r\n }, {\r\n answerId: 4,\r\n answerText: 'Intel Core i7'\r\n }]\r\n }, {\r\n questionText: '_________________ processors are installed on desktop computers.',\r\n questionId: 1,\r\n answers: [{\r\n answerId: 1,\r\n answerText: 'Intel Celeron'\r\n }, {\r\n answerId: 2,\r\n answerText: 'Intel Core i3'\r\n }, {\r\n answerId: 3,\r\n answerText: 'Intel Core i5'\r\n }, {\r\n answerId: 4,\r\n answerText: 'Intel Core i7'\r\n }]\r\n }, {\r\n questionText: '_________________ processors are installed on mobile computers.',\r\n questionId: 1,\r\n answers: [{\r\n answerId: 1,\r\n answerText: 'Intel Celeron'\r\n }, {\r\n answerId: 2,\r\n answerText: 'Intel Core i3'\r\n }, {\r\n answerId: 3,\r\n answerText: 'Intel Core i5'\r\n }, {\r\n answerId: 4,\r\n answerText: 'Intel Core i7'\r\n }]\r\n }, {\r\n questionText: '_________________ processors are installed on desktop computers.',\r\n questionId: 1,\r\n answers: [{\r\n answerId: 1,\r\n answerText: 'Intel Celeron'\r\n }, {\r\n answerId: 2,\r\n answerText: 'Intel Core i3'\r\n }, {\r\n answerId: 3,\r\n answerText: 'Intel Core i5'\r\n }, {\r\n answerId: 4,\r\n answerText: 'Intel Core i7'\r\n }]\r\n }]\r\n }\r\n\r\n SWIC6.multiplechoice = {\r\n type: 'multiplechoice',\r\n questions: [{\r\n questionText: 'Which has the fastest speed?',\r\n questionId: 1,\r\n answers: [{\r\n answerId: 1,\r\n answerText: 'Intel Celeron'\r\n }, {\r\n answerId: 2,\r\n answerText: 'Intel Core i3'\r\n }, {\r\n answerId: 3,\r\n answerText: 'Intel Core i5'\r\n }, {\r\n answerId: 4,\r\n answerText: 'Intel Core i7'\r\n }]\r\n }, {\r\n questionText: 'Which has the slowest speed?',\r\n questionId: 1,\r\n answers: [{\r\n answerId: 1,\r\n answerText: 'Intel Celeron'\r\n }, {\r\n answerId: 2,\r\n answerText: 'Intel Core i3'\r\n }, {\r\n answerId: 3,\r\n answerText: 'Intel Core i5'\r\n }, {\r\n answerId: 4,\r\n answerText: 'Intel Core i7'\r\n }]\r\n }, {\r\n questionText: 'Which has the fastest speed?',\r\n questionId: 1,\r\n answers: [{\r\n answerId: 1,\r\n answerText: 'Intel Celeron'\r\n }, {\r\n answerId: 2,\r\n answerText: 'Intel Core i3'\r\n }, {\r\n answerId: 3,\r\n answerText: 'Intel Core i5'\r\n }, {\r\n answerId: 4,\r\n answerText: 'Intel Core i7'\r\n }]\r\n }, {\r\n questionText: 'Which has the slowest speed?',\r\n questionId: 1,\r\n answers: [{\r\n answerId: 1,\r\n answerText: 'Intel Celeron'\r\n }, {\r\n answerId: 2,\r\n answerText: 'Intel Core i3'\r\n }, {\r\n answerId: 3,\r\n answerText: 'Intel Core i5'\r\n }, {\r\n answerId: 4,\r\n answerText: 'Intel Core i7'\r\n }]\r\n }, {\r\n questionText: 'Which has the fastest speed?',\r\n questionId: 1,\r\n answers: [{\r\n answerId: 1,\r\n answerText: 'Intel Celeron'\r\n }, {\r\n answerId: 2,\r\n answerText: 'Intel Core i3'\r\n }, {\r\n answerId: 3,\r\n answerText: 'Intel Core i5'\r\n }, {\r\n answerId: 4,\r\n answerText: 'Intel Core i7'\r\n }]\r\n }]\r\n }\r\n\r\n SWIC6.connect2 = {\r\n type: 'connect2',\r\n questions: [{\r\n questionText: 'Match Processor with the Correct Attribute',\r\n questionId: 1,\r\n answers: [{\r\n answerId: 1,\r\n answerText: 'Description
    Type A'\r\n }, {\r\n answerId: 2,\r\n answerText: 'Intel
    Core i3'\r\n }, {\r\n answerId: 1,\r\n answerText: 'Description
    Type B'\r\n }, {\r\n answerId: 2,\r\n answerText: 'Intel
    Core i5'\r\n }]\r\n }, {\r\n questionText: 'Match Processor with the Correct Attribute',\r\n questionId: 1,\r\n answers: [{\r\n answerId: 1,\r\n answerText: 'Description
    Type A'\r\n }, {\r\n answerId: 2,\r\n answerText: 'Intel
    Core i3'\r\n }, {\r\n answerId: 1,\r\n answerText: 'Description
    Type B'\r\n }, {\r\n answerId: 2,\r\n answerText: 'Intel
    Core i5'\r\n }]\r\n }, {\r\n questionText: 'Match Processor with the Correct Attribute',\r\n questionId: 1,\r\n answers: [{\r\n answerId: 1,\r\n answerText: 'Description
    Type A'\r\n }, {\r\n answerId: 2,\r\n answerText: 'Intel
    Core i3'\r\n }, {\r\n answerId: 1,\r\n answerText: 'Description
    Type B'\r\n }, {\r\n answerId: 2,\r\n answerText: 'Intel
    Core i5'\r\n }]\r\n }, {\r\n questionText: 'Match Processor with the Correct Attribute',\r\n questionId: 1,\r\n answers: [{\r\n answerId: 1,\r\n answerText: 'Description
    Type A'\r\n }, {\r\n answerId: 2,\r\n answerText: 'Intel
    Core i3'\r\n }, {\r\n answerId: 1,\r\n answerText: 'Description
    Type B'\r\n }, {\r\n answerId: 2,\r\n answerText: 'Intel
    Core i5'\r\n }]\r\n }, {\r\n questionText: 'Match Processor with the Correct Attribute',\r\n questionId: 1,\r\n answers: [{\r\n answerId: 1,\r\n answerText: 'Description
    Type A'\r\n }, {\r\n answerId: 2,\r\n answerText: 'Intel
    Core i3'\r\n }, {\r\n answerId: 1,\r\n answerText: 'Description
    Type B'\r\n }, {\r\n answerId: 2,\r\n answerText: 'Intel
    Core i5'\r\n }]\r\n }]\r\n }\r\n\r\n SWIC6.connect4 = {\r\n type: 'connect4',\r\n questions: [{\r\n questionText: 'Match Processor with the Correct Attribute',\r\n questionId: 1,\r\n answers: [{\r\n answerId: 1,\r\n answerText: 'Description
    Type A'\r\n }, {\r\n answerId: 2,\r\n answerText: 'Intel
    Core i3'\r\n }, {\r\n answerId: 1,\r\n answerText: 'Description
    Type B'\r\n }, {\r\n answerId: 2,\r\n answerText: 'Intel
    Core i5'\r\n }, {\r\n answerId: 1,\r\n answerText: 'Description
    Type C'\r\n }, {\r\n answerId: 2,\r\n answerText: 'Intel
    Core i5 vPro'\r\n }, {\r\n answerId: 1,\r\n answerText: 'Description
    Type D'\r\n }, {\r\n answerId: 2,\r\n answerText: 'Intel
    Core i7'\r\n }]\r\n }]\r\n }\r\n\r\n SWIC6.wordreplace4 = {\r\n type: 'wordreplace4',\r\n questions: [{\r\n questionText: 'Lorem ipsum _______ dolor sit amet, consectetur ______ adipiscing elit. Sed do ____ eiusmod tempor _______ incididunt ut.',\r\n questionId: 1,\r\n answers: [{\r\n answerId: 1,\r\n answerText: 'Intel Celeron'\r\n }, {\r\n answerId: 2,\r\n answerText: 'Intel Core i3'\r\n }, {\r\n answerId: 3,\r\n answerText: 'Intel Core i5'\r\n }, {\r\n answerId: 4,\r\n answerText: 'Intel Core i7'\r\n }]\r\n },]\r\n }\r\n\r\n\r\n return SWIC6;\r\n}());\r\n","var IREP = IREP || {};\r\n\r\nIREP.SWIC6Desktop = (function () {\r\n var defaultOptions = {\r\n mode: 'desktop',\r\n firstVisit: false\r\n };\r\n var SWIC6Desktop = function (options) {\r\n var self = this;\r\n\r\n this.options = $.extend({}, defaultOptions, options);\r\n IREP.SWIC6.call(this, this.options);\r\n\r\n this.individualProfile = { participants: ko.observableArray() };\r\n ko.applyBindings(this.individualProfile, $('#individualProfile')[0]);\r\n\r\n this.personalProfile = { profile: ko.observable() };\r\n this.numOfLearnings = { learnings: ko.observable() };\r\n //ko.applyBindings({ personalProfile: this.personalProfile, numOfLearnings: this.numOfLearnings }, $('#myPersonalInfo')[0]);\r\n\r\n this.storeProfile = { storeProfile: ko.observable() };\r\n this.manager = { manager: ko.observable() };\r\n\r\n this.schools = { schools: ko.observable() };\r\n\r\n this.mysteryShop = { mysteryShop: ko.observable() };\r\n \r\n ko.applyBindings({ storeProfile: this.storeProfile, manager: this.manager, mysteryShop: this.mysteryShop, schools: this.schools }, $('#storeInfo')[0]);\r\n\r\n\r\n ko.applyBindings({ storeProfile: this.storeProfile }, $('#msleaderboard')[0]);\r\n\r\n\r\n //ko.applyBindings({ storeProfile: this.storeProfile, manager: this.manager, mysteryShop: this.mysteryShop }, $('#storeInfo2')[0]);\r\n\r\n this.storeDashboard = { dashboard: ko.observableArray() };\r\n\r\n this.voteForSchool = function (id) {\r\n\r\n if (id !== undefined) {\r\n IREP.callApi({\r\n url: \"swic6/schoolvote\",\r\n type: \"POST\",\r\n data: { schoolId: id.id }\r\n }).then(function () {\r\n return self.getSchoolNominations();\r\n }).then(function (school) {\r\n self.updateSchoolNominations(school);\r\n });\r\n\r\n if ($('.box').hasClass('selected') !== true) {\r\n $('a').removeClass('onHover');\r\n $('.fullInfoBlock').addClass('doNotShow');\r\n $('.votes').removeClass('doNotShow');\r\n\r\n var targetElement = event.currentTarget;\r\n $(targetElement).addClass('selected');\r\n }\r\n }\r\n };\r\n\r\n this.totalNumOfVotes = { totalNumOfVotes: ko.observable() };\r\n\r\n //ko.applyBindings({ schools: this.schools, dashboard: this.storeDashboard, voteForSchool: this.voteForSchool, totalNumOfVotes: this.totalNumOfVotes }, $('#dashboard')[0]);\r\n\r\n this.storeLeaderboard = { leaderboard: ko.observableArray() };\r\n //ko.applyBindings(this.storeLeaderboard, $('#leaderboard')[0]);\r\n\r\n\r\n\r\n this.setupOnce();\r\n }\r\n\r\n SWIC6Desktop.prototype = Object.create(IREP.SWIC6.prototype);\r\n SWIC6Desktop.prototype.constructor = SWIC6Desktop;\r\n\r\n SWIC6Desktop.prototype.setupOnce = function () {\r\n var self = this;\r\n\r\n $(\"#footer\").remove();\r\n\r\n self.showInitialView();\r\n\r\n $('#home-svg').off().on('touchstart click', '[data-nav]', function (e) {\r\n var navitem = $(this).data('nav');\r\n self.switchNav(navitem);\r\n\r\n e.stopPropagation();\r\n e.preventDefault();\r\n return false;\r\n });\r\n\r\n\r\n\r\n $('nav').off().on('touchstart click', '[data-nav]', function (e) {\r\n if (self.navEnabled) {\r\n var navitem = $(this).data('nav');\r\n\r\n self.toggleNav(false);\r\n\r\n if (navitem === 'story' && self.selectedPage === 'sb-item') { /* This is so users can navigate from one storyboard section to the other */\r\n self.switchNav(navitem, true);\r\n e.stopPropagation();\r\n e.preventDefault();\r\n self.toggleNav(true);\r\n return false;\r\n };\r\n\r\n var navSelector = navitem === 'recon' ? $('#board') : $('#' + navitem); //This is to prevent nav from breaking when on the recon page and clicking recon, since recon isn't in #recon\r\n if (navSelector.is(':visible')) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n self.toggleNav(true);\r\n return false;\r\n };\r\n\r\n self.switchNav(navitem, true);\r\n\r\n e.stopPropagation();\r\n e.preventDefault();\r\n }\r\n\r\n return false;\r\n });\r\n\r\n $('.home-story').on('click', function () {\r\n self.closeDoor();\r\n \r\n });\r\n\r\n $('.nominateSchool').on('click', function () {\r\n self.switchNav('manager');\r\n });\r\n\r\n $('.notVerifiedManager').on('click', function () {\r\n self.switchNav('manager');\r\n });\r\n\r\n $('.btnNext').on('click', function () {\r\n self.switchNav('overview');\r\n });\r\n\r\n $('.storeDashboardLink').on('click', function () {\r\n self.switchNav('leaderboards');\r\n });\r\n\r\n $('.DashboardLink').on('click', function () {\r\n $('#overview').addClass('switchToDashboard');\r\n self.switchNav('leaderboards');\r\n });\r\n\r\n $('.LeaderboardLink').on('click', function () {\r\n $('#overview').addClass('switchToLeaderboard');\r\n self.switchNav('leaderboards');\r\n });\r\n\r\n $('.prizesLink').on('click', function () {\r\n self.switchNav('prizes');\r\n });\r\n\r\n $('#garagePopup').on('click', function () {\r\n $('#garagePopup').fadeOut(800);\r\n });\r\n\r\n\r\n $(\"nav > div > img\").on(\"mouseover\", function () {\r\n this.parentNode.children[0].style.display = \"none\";\r\n this.parentNode.children[1].style.display = \"block\";\r\n this.parentNode.children[2].style.display = \"block\";\r\n\r\n });\r\n\r\n $(\"nav > div > img\").on(\"mouseout\", function () {\r\n this.parentNode.children[0].style.display = \"block\";\r\n this.parentNode.children[1].style.display = \"none\";\r\n this.parentNode.children[2].style.display = \"none\";\r\n });\r\n\r\n $(\"#nav-lb > div > img\").on(\"mouseover\", function () {\r\n this.parentNode.children[0].style.display = \"none\";\r\n this.parentNode.children[1].style.display = \"block\";\r\n this.parentNode.children[2].style.display = \"block\";\r\n\r\n });\r\n\r\n $(\"#nav-lb > div > img\").on(\"mouseout\", function () {\r\n if (this.parentElement.className.indexOf('active') > -1) {\r\n this.parentNode.children[0].style.display = \"none\";\r\n this.parentNode.children[1].style.display = \"block\";\r\n this.parentNode.children[2].style.display = \"none\";\r\n }\r\n else {\r\n this.parentNode.children[0].style.display = \"block\";\r\n this.parentNode.children[1].style.display = \"none\";\r\n this.parentNode.children[2].style.display = \"none\";\r\n }\r\n });\r\n\r\n if ($('#navProfile').hasClass('active') === true) {\r\n $('.profileActive').show();\r\n $('.profileInactive').hide();\r\n };\r\n\r\n $('#navProfile').one('click', function () {\r\n self.navProfileClick(false);\r\n });\r\n\r\n $('#navDashboard').one('click', function () {\r\n self.navDashboardClick();\r\n });\r\n\r\n $('#navLeaderboard').one('click', function () {\r\n self.navLeaderboardClick();\r\n });\r\n\r\n $('.transmission-pages').keydown(function (e) {\r\n var parentDiv = $(this).parent().attr('id');\r\n\r\n switch (e.which) {\r\n case 37:\r\n self.comicPreviousSlide(parentDiv);\r\n break;\r\n case 39:\r\n self.comicNextSlide(parentDiv);\r\n break;\r\n default:\r\n break;\r\n };\r\n });\r\n /************************\r\n * Win it Minute Tracking\r\n ************************/\r\n\r\n\r\n //videojs(\"video_01Landing\").ready(function () {\r\n // this.on(\"ended\", function () {\r\n\r\n // IREP.track(\"WinItMinute\", \"ended\", 'WinItMinuteEnded', '', '');\r\n // });\r\n // this.on(\"play\", function () {\r\n // IREP.track(\"WinItMinute\", \"played\", 'WinItMinutePlay', '', '');\r\n // });\r\n\r\n // this.on(\"loadstart\", function () {\r\n // IREP.track(\"WinItMinute\", \"started\", 'WinItMinuteStarted', '', '');\r\n\r\n // });\r\n //});\r\n\r\n };\r\n\r\n SWIC6Desktop.prototype.showInitialView = function () {\r\n var self = this;\r\n if (self.options.firstVisit) {\r\n $('#storyline').fadeIn(400);\r\n } else if (window.location.hash !== \"\") {\r\n self.switchNav(window.location.hash.substring(1));\r\n } else {\r\n self.switchNav(\"home\");\r\n }\r\n };\r\n\r\n SWIC6Desktop.prototype.selectedPage = '';\r\n SWIC6Desktop.prototype.navEnabled = true;\r\n\r\n SWIC6Desktop.prototype.toggleNav = function (enabled) {\r\n this.navEnabled = enabled;\r\n };\r\n\r\n SWIC6Desktop.prototype.switchNav = function (navitem, opendoor) {\r\n var self = this;\r\n\r\n if ($('#garagePopup').hasClass('seen')) {\r\n $('#garagePopup').hide();\r\n }\r\n\r\n navitem = navitem.toLowerCase();\r\n var possibleNavItems = ['home', 'story', 'leaderboards', 'recon', 'learn', 'garage', 'prizes', 'overview', 'manager', 'winners'];\r\n if (_.all(possibleNavItems, function (e) { return e !== navitem })) {\r\n navitem = 'home';\r\n }\r\n\r\n //if (self.selectedPage === 'garage') self.selectedPage = 'home';\r\n\r\n if (self.selectedPage == navitem) return;\r\n\r\n $('nav').removeClass().addClass(navitem);\r\n\r\n this.trackNavigation(navitem);\r\n\r\n var waitToLoad = ko.observable(false);\r\n\r\n var goToPage = function (value) {\r\n if (!value) {\r\n $('.glowFrame').hide();\r\n\r\n if (navitem == \"story\") {\r\n\r\n self.resetStoryboard();\r\n \r\n $('.page').hide();\r\n $(\"#left-navigation, #right-navigation\").hide();\r\n self.fastCloseDoor().then(function () {\r\n $('#' + navitem).show();\r\n $(\"#left-navigation, #right-navigation\").fadeIn();\r\n self.toggleNav(true);\r\n });\r\n } else {\r\n $(\".page\").fadeOut();\r\n $(\"#\" + navitem).fadeIn();\r\n $(\"#SWIC6\").removeClass();\r\n $(\"#SWIC6\").addClass(navitem);\r\n\r\n switch (navitem) {\r\n case \"home\":\r\n \r\n //self.showItemPopup();\r\n\r\n\r\n break;\r\n case \"leaderboards\":\r\n self.hideMoon();\r\n self.showGroupLeaderboards();\r\n $('.glowFrame').show();\r\n if ($('#overview').hasClass('switchToDashboard')) {\r\n $('#overview').hasClass('switchToDashboard')\r\n //self.navDashboardClick();\r\n self.showGroupLeaderboards();\r\n }\r\n else if ($('#overview').hasClass('switchToLeaderboard')) {\r\n $('#overview').removeClass('switchToLeaderboard');\r\n //self.navLeaderboardClick();\r\n self.showGroupLeaderboards();\r\n }\r\n else {\r\n // self.navProfileClick(true);\r\n self.showGroupLeaderboards();\r\n }\r\n break;\r\n case \"learn\":\r\n \r\n $('.glowFrame').show();\r\n // self.activateIndividualProfile();\r\n break;\r\n case \"overview\":\r\n \r\n $('.glowFrame').show();\r\n self.hideMoon();\r\n self.showMysteryShop();\r\n break;\r\n case \"prizes\":\r\n \r\n $('.glowFrame').show();\r\n self.hideMoon();\r\n break;\r\n case \"winners\":\r\n $('.glowFrame').show();\r\n self.hideMoon();\r\n \r\n break;\r\n case \"manager\":\r\n \r\n self.showManager();\r\n default:\r\n break;\r\n \r\n\r\n }\r\n\r\n self.toggleNav(true);\r\n }\r\n }\r\n };\r\n\r\n waitToLoad.subscribe(goToPage);\r\n\r\n waitToLoad(true);\r\n switch (self.selectedPage) {\r\n case 'home':\r\n waitToLoad(false);\r\n break;\r\n case 'story':\r\n \r\n $(\"#left-navigation, #right-navigation\").hide();\r\n\r\n self.hideStoryboard().then(function () {\r\n waitToLoad(false);\r\n });\r\n\r\n break;\r\n case 'leaderboards':\r\n self.hideLeaderboard();\r\n self.showGroupLeaderboards();\r\n self.hideMoon();\r\n waitToLoad(false);\r\n break;\r\n case 'recon':\r\n self.hideReconBoard();\r\n waitToLoad(false);\r\n //self.fastOpenDoor().then(function () {\r\n \r\n // });\r\n break;\r\n case 'learn':\r\n waitToLoad(false);\r\n break;\r\n case 'prizes':\r\n self.hideMoon();\r\n waitToLoad(false);\r\n break;\r\n case 'winners':\r\n self.hideMoon();\r\n waitToLoad(false);\r\n break;\r\n case 'overview':\r\n self.hideMoon();\r\n self.showMysteryShop();\r\n waitToLoad(false);\r\n break;\r\n case 'sb-item':\r\n $('.door').hide();\r\n $('#transmission1, #transmission2, #transmission3, #transmission1-pages, #transmission2-pages, #transmission3-pages').hide();\r\n self.resetLockNav();\r\n\r\n if ($('.sb-doors').is(':visible')) {\r\n $('.sb-panel0, .sb-panel1, .sb-panel2, .sb-panel3, .sb-panel4, .sb-panel5, .sb-panel6, .sb-panel7').addClass('sb-open');\r\n setTimeout(function () {\r\n $('.sb-doors').hide();\r\n waitToLoad(false);\r\n }, 3200)\r\n } else {\r\n waitToLoad(false);\r\n }\r\n break;\r\n default:\r\n waitToLoad(false);\r\n break;\r\n };\r\n\r\n self.selectedPage = navitem;\r\n };\r\n\r\n SWIC6Desktop.prototype.navProfileClick = function (forceProfile) {\r\n var self = this;\r\n\r\n if ($('#navProfile').hasClass('active') === false || forceProfile === true) {\r\n self.trackLeaderboard('profile');\r\n\r\n //self.showIndividualProfile();\r\n\r\n $('#navDashboard').removeClass('active');\r\n $('#navLeaderboard').removeClass('active');\r\n $('#navProfile').addClass('active');\r\n\r\n $('.profileActive').show();\r\n $('.profileInactive').hide();\r\n $('.dashboardActive').hide();\r\n $('.dashboardInactive').show();\r\n\r\n $('.leaderboardActive').hide();\r\n $('.leaderboardInactive').show();\r\n\r\n $('#storeDashboard').hide();\r\n $('#storeLeaderboard').hide();\r\n $('.lb-dashboard').hide();\r\n $('.lb-leaderboard').hide();\r\n $('.lb-profile').show();\r\n $('#personalInfo').show();\r\n\r\n $('#navProfile').one('click', function () {\r\n self.navProfileClick();\r\n });\r\n };\r\n };\r\n\r\n SWIC6Desktop.prototype.navDashboardClick = function () {\r\n var self = this;\r\n\r\n if ($('#navDashboard').hasClass('active') === false) {\r\n //self.trackLeaderboard('dashboard');\r\n //self.showStoreDashboard();\r\n\r\n $('#navProfile').removeClass('active');\r\n $('#navLeaderboard').removeClass('active');\r\n $('#navDashboard').addClass('active');\r\n\r\n $('.profileActive').hide();\r\n $('.profileInactive').show();\r\n\r\n\r\n $('.dashboardActive').show();\r\n $('.dashboardInactive').hide();\r\n\r\n $('.leaderboardActive').hide();\r\n $('.leaderboardInactive').show();\r\n\r\n $('#personalInfo').hide();\r\n $('#storeLeaderboard').hide();\r\n $('.lb-profile').hide();\r\n $('.lb-leaderboard').hide();\r\n $('.lb-dashboard').show();\r\n $('#storeDashboard').show();\r\n\r\n $('#navDashboard').one('click', function () {\r\n self.navDashboardClick();\r\n });\r\n };\r\n };\r\n\r\n SWIC6Desktop.prototype.navLeaderboardClick = function () {\r\n var self = this;\r\n\r\n if ($('#navLeaderboard').hasClass('active') === false) {\r\n //self.trackLeaderboard('leaderboard');\r\n //self.showStoreLeaderboard();\r\n self.showGroupLeaderboards();\r\n $('#navProfile').removeClass('active');\r\n $('#navDashboard').removeClass('active');\r\n $('#navLeaderboard').addClass('active');\r\n\r\n $('.profileActive').hide();\r\n $('.profileInactive').show();\r\n\r\n $('.dashboardActive').hide();\r\n $('.dashboardInactive').show();\r\n\r\n $('.leaderboardActive').show();\r\n $('.leaderboardInactive').hide();\r\n\r\n $('#storeDashboard').hide();\r\n $('#personalInfo').hide();\r\n $('.lb-dashboard').hide();\r\n $('.lb-profile').hide();\r\n $('.lb-leaderboard').show();\r\n $('#storeLeaderboard').show();\r\n\r\n $('#navLeaderboard').one('click', function () {\r\n self.navLeaderboardClick();\r\n });\r\n };\r\n };\r\n\r\n SWIC6Desktop.prototype.animateRings = function () {\r\n var oldFill = '#58595B';\r\n var loadFill = '#FFF';\r\n $('[class^=ring]').css('fill', oldFill)\r\n var i = 10;\r\n this.animateRingsIntervalID = setInterval(function () {\r\n var old = i + 1;\r\n if (old > 10) {\r\n old = 0;\r\n }\r\n\r\n $('.ring' + old).css('fill', oldFill);\r\n $('.ring' + i).css('fill', loadFill);\r\n i--;\r\n if (i < 0) {\r\n i = 10;\r\n }\r\n }, 100);\r\n };\r\n\r\n SWIC6Desktop.prototype.showMoon = function () {\r\n var self = this;\r\n var deferred = $.Deferred();\r\n\r\n $('#moon-svg').css('opacity', '1').show();\r\n\r\n self.animateRings();\r\n this.delay(2000).then(function () {\r\n deferred.resolve();\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n SWIC6Desktop.prototype.hideMoon = function () {\r\n var self = this;\r\n var deferred = $.Deferred();\r\n\r\n $('#moon-svg').css('opacity', '0');\r\n\r\n this.delay(2000).then(function () {\r\n clearInterval(self.animateRingsIntervalID);\r\n $('#moon-svg').hide();\r\n\r\n deferred.resolve();\r\n });\r\n\r\n return deferred.promise();\r\n };\r\n\r\n SWIC6Desktop.prototype.hideLeaderboard = function () {\r\n var self = this;\r\n var deferred = $.Deferred();\r\n\r\n $('.lb-mainBody').hide();\r\n deferred.resolve();\r\n return deferred.promise();\r\n };\r\n\r\n SWIC6Desktop.prototype.showLeaderboard = function () {\r\n var self = this;\r\n\r\n self.hideMoon().then(function () {\r\n $('.lb-mainBody').fadeIn(300);\r\n self.showGroupLeaderboards();\r\n });\r\n };\r\n\r\n\r\n /************************\r\n * OverView\r\n ************************/\r\n\r\n //MYSTERY SHOP STORE CODE\r\n SWIC6Desktop.prototype.showMysteryShop = function () {\r\n var self = this;\r\n\r\n IREP.callApi({\r\n url: \"swic6/store/level\",\r\n type: \"GET\"\r\n }).done(function (response) {\r\n if (response.storeLevel === \"GroupA\" || response.storeLevel === \"Elite\") {\r\n //Mystery Shop Store\r\n //console.log('I get mystery shops');\r\n $(\".mysteryShop\").show();\r\n\r\n } else {\r\n //Non Mystery Shop Store \r\n //console.log('I\\'m a sad panda and do not get mysery shop');\r\n $(\".NonMysteryShop\").show();\r\n\r\n }\r\n });\r\n };\r\n\r\n\r\n //END MYSTERY SHOP STORE CODE\r\n\r\n\r\n SWIC6Desktop.prototype.showGroupLeaderboards = function () {\r\n var self = this;\r\n\r\n IREP.callApi({\r\n url: \"swic6/store/level\",\r\n type: \"GET\"\r\n }).done(function (response) {\r\n console.log(response);\r\n if (response.storeLevel === \"Elite\") {\r\n //Mystery Shop Store\r\n //console.log('I get mystery shops');\r\n $(\"#eliteStoreWinners\").css(\"display\", \"block\");\r\n\r\n } else if (response.storeLevel === \"GroupA\") {\r\n //Non Mystery Shop Store \r\n //console.log('I\\'m a sad panda and do not get mysery shop');\r\n $(\"#groupAStoreWinners\").css(\"display\", \"block\");\r\n\r\n }\r\n else if (response.storeLevel === \"GroupB\") {\r\n $(\"#groupBStoreWinners\").css(\"display\", \"block\");\r\n }\r\n });\r\n };\r\n\r\n\r\n \r\n\r\n /************************\r\n * Manager\r\n ************************/\r\n\r\n SWIC6Desktop.prototype.showManager = function () {\r\n var self = this;\r\n\r\n IREP.swic6Registration = new IREP.SWIC6EarlyRegistration();\r\n\r\n $(\".glowFrame\").show();\r\n self.hideMoon();\r\n self.toggleNav(true);\r\n }\r\n\r\n\r\n /************************\r\n * Garage Item Popup \r\n ************************/\r\n\r\n SWIC6Desktop.prototype.getItemPopup = function () {\r\n var self = this;\r\n return IREP.callApi({ url: 'swic6/popup' })\r\n\r\n };\r\n\r\n SWIC6Desktop.prototype.showItemPopup = function () {\r\n var self = this;\r\n\r\n $.when(this.getItemPopup()).then(function (popup) {\r\n if (popup.item !== undefined) {\r\n $('#garagePopup').show();\r\n document.getElementById(\"itemName\").innerHTML = popup.item.name;\r\n if (popup.item.typeid === 7) {\r\n document.getElementById(\"itemImage\").src = \"/content/images/asmo/2015swic/garage/tools/\" + popup.item.icon;\r\n }\r\n else {\r\n document.getElementById(\"itemImage\").src = \"/content/images/asmo/2015swic/garage/parts/\" + popup.item.icon;\r\n }\r\n\r\n $('#garagePopup').addClass('seen');\r\n self.updateItemPopup(popup.item.id);\r\n }\r\n });\r\n };\r\n\r\n SWIC6Desktop.prototype.updateItemPopup = function (id) {\r\n var self = this;\r\n IREP.callApi({\r\n url: \"swic6/popup/update\",\r\n type: \"POST\",\r\n data: { itemId: id }\r\n }).done();\r\n };\r\n\r\n /************************\r\n * Individual Profile\r\n ************************/\r\n\r\n\r\n SWIC6Desktop.prototype.showIndividualProfile = function () {\r\n var self = this;\r\n \r\n $.when(this.getIndividualProfile(), this.getIndividualLeaderboard(), this.getNumOfLearnings(), this.hideLeaderboard(), this.showMoon()).then(function (individual, individualinfo, numOfLeanings) {\r\n self.personalProfile.profile(individual[0].info);\r\n self.individualProfile.participants(individualinfo[0].leaderboard);\r\n \r\n self.numOfLearnings.learnings(numOfLeanings[0]);\r\n\r\n $(\"#redeemToken\").off().one(\"click\", function () {\r\n self.trackLeaderboard('token');\r\n self.getTokenRedemption();\r\n });\r\n\r\n return self.showLeaderboard();\r\n });\r\n\r\n };\r\n\r\n SWIC6Desktop.prototype.getTokenRedemption = function () {\r\n var deferred = $.Deferred();\r\n var self = this;\r\n\r\n IREP.callApi({\r\n url: \"swic6/redeemtoken\"\r\n }).done(function (d) {\r\n if (d.info) {\r\n\r\n $(\"#weeklyDrawingEntries\").html(\"+\" + d.info.randomEntries);\r\n setTimeout(function () { $(\"#weeklyDrawingEntries\").html(d.info.drawingEntries); }, 2000);\r\n $(\"#tokensAvailable\").html(d.info.availableTokens);\r\n\r\n if (d.info.availableTokens > 0) {\r\n $(\"#redeemToken\").off().one(\"click\", function () {\r\n self.trackLeaderboard('token');\r\n self.getTokenRedemption();\r\n });\r\n } else {\r\n $(\"#redeemToken\").parent().hide();\r\n }\r\n }\r\n\r\n deferred.resolve();\r\n });\r\n\r\n return deferred.promise();\r\n };\r\n\r\n\r\n SWIC6Desktop.prototype.getIndividualProfile = function () {\r\n return IREP.callApi({ url: 'swic6/individualinfo' })\r\n };\r\n\r\n SWIC6Desktop.prototype.getIndividualLeaderboard = function () {\r\n return IREP.callApi({ url: 'swic6/individual' });\r\n };\r\n\r\n SWIC6Desktop.prototype.getNumOfLearnings = function () {\r\n return IREP.callApi({ url: 'swic6/numOfLearnings' });\r\n };\r\n /************************\r\n * Store Dashboard\r\n ************************/\r\n\r\n SWIC6Desktop.prototype.getManagerInfo = function () {\r\n return IREP.callApi({ url: 'swic6/managerinfo' });\r\n };\r\n\r\n SWIC6Desktop.prototype.getStoreProfile = function () {\r\n return IREP.callApi({ url: 'swic6/storeinfo' })\r\n };\r\n\r\n SWIC6Desktop.prototype.getStoreDashboard = function () {\r\n return IREP.callApi({ url: 'swic6/dashboard' });\r\n };\r\n\r\n SWIC6Desktop.prototype.getMysteryShop = function () {\r\n return IREP.callApi({ url: 'swic6/mysteryshop' });\r\n };\r\n\r\n SWIC6Desktop.prototype.getSchoolNominations = function () {\r\n return IREP.callApi({ url: 'swic6/nominations' });\r\n };\r\n\r\n SWIC6Desktop.prototype.showStoreDashboard = function () {\r\n var self = this;\r\n $.when(this.getStoreProfile(), this.getManagerInfo(), this.getStoreDashboard(), this.getMysteryShop(), this.getSchoolNominations(), this.hideLeaderboard(), this.showMoon()).then(function (storeProfile, managerInfo, storeDashboard, mysteryShop, schools) {\r\n self.storeProfile.storeProfile(storeProfile[0].info);\r\n self.manager.manager(managerInfo[0].info);\r\n self.mysteryShop.mysteryShop(mysteryShop[0].mysteryShopDetail);\r\n self.storeDashboard.dashboard(storeDashboard[0].dashboard);\r\n self.updateSchool(schools);\r\n });\r\n };\r\n\r\n SWIC6Desktop.prototype.updateSchool = function (schoolInfo) {\r\n var self = this;\r\n self.schools.schools(schoolInfo[0].noms)\r\n\r\n var totalVotes = 0;\r\n for (var i = 0; i < schoolInfo[0].noms.length; i++) {\r\n totalVotes = schoolInfo[0].noms[i].votes + totalVotes;\r\n }\r\n\r\n self.totalNumOfVotes.totalNumOfVotes(totalVotes);\r\n\r\n if (schoolInfo[0].noms.length < 2) {\r\n $('#dashboard .dashboardTbody').css('height', '420px');\r\n };\r\n\r\n if (schoolInfo[0].noms.length >= 5) {\r\n $('#storeInfo tbody').css('height', '420px');\r\n $('#storeInfo tfoot').addClass('doNotShow');\r\n $('#leaderboards .lb-mainBody #column1 tbody').css('height', '100%');\r\n $('#leaderboards .lb-mainBody #column2 tbody').css('height', '100%');\r\n };\r\n\r\n return self.showLeaderboard();\r\n };\r\n\r\n SWIC6Desktop.prototype.updateSchoolNominations = function (schoolInfo) {\r\n var self = this;\r\n self.schools.schools(schoolInfo.noms)\r\n\r\n var totalVotes = 0;\r\n for (var i = 0; i < schoolInfo.noms.length; i++) {\r\n totalVotes = schoolInfo.noms[i].votes + totalVotes;\r\n }\r\n\r\n self.totalNumOfVotes.totalNumOfVotes(totalVotes);\r\n return self.showLeaderboard();\r\n }\r\n\r\n /***********************\r\n * Store Leaderboard\r\n **********************/\r\n\r\n SWIC6Desktop.prototype.showStoreLeaderboard = function () {\r\n var self = this;\r\n $.when(this.getStoreProfile(), this.getStoreLeaderboard(), this.getManagerInfo(), this.getMysteryShop(), this.hideLeaderboard(), this.showMoon()).then(function (storeProfile, storeLeaderboard, managerInfo, mysteryShop) {\r\n\r\n self.storeProfile.storeProfile(storeProfile[0].info);\r\n self.manager.manager(managerInfo[0].info);\r\n self.mysteryShop.mysteryShop(mysteryShop[0].mysteryShopDetail);\r\n self.storeLeaderboard.leaderboard(storeLeaderboard[0].leaderboard);\r\n return self.showLeaderboard();\r\n });\r\n };\r\n\r\n SWIC6Desktop.prototype.getStoreLeaderboard = function () {\r\n return IREP.callApi({ url: 'swic6/storeleaderboard' });\r\n };\r\n\r\n SWIC6Desktop.prototype.openDoor = function () {\r\n var self = this;\r\n var deferred = $.Deferred();\r\n\r\n $('.door').show();\r\n $('.s3lock').addClass('open');\r\n this.delay(1000).then(function () {\r\n $('.panel0').addClass('open');\r\n return self.delay(1000);\r\n }).then(function () {\r\n $('.panel1').addClass('open');\r\n return self.delay(1000);\r\n }).then(function () {\r\n $('.panel2').addClass('open');\r\n return self.delay(1000);\r\n }).then(function () {\r\n $('.panel3').addClass('open');\r\n return self.delay(1000);\r\n }).then(function () {\r\n $('.panel4').addClass('open');\r\n return self.delay(1000);\r\n }).then(function () {\r\n $('.panel5').addClass('open');\r\n return self.delay(1000);\r\n }).then(function () {\r\n $('.panel6').addClass('open');\r\n return self.delay(1000);\r\n }).then(function () {\r\n $('.panel7').addClass('open');\r\n return self.delay(3000);\r\n }).then(function () {\r\n $('.door').hide();\r\n deferred.resolve();\r\n });\r\n\r\n return deferred.promise();\r\n };\r\n\r\n SWIC6Desktop.prototype.fastOpenDoor = function () {\r\n var self = this;\r\n\r\n var deferred = $.Deferred();\r\n\r\n $('.door').show();\r\n this.delay(0).then(function () {\r\n $('.s3lock, .panel0, .panel1, .panel2, .panel3, .panel4, .panel5, .panel6, .panel7').addClass('open');\r\n return self.delay(3000);\r\n }).then(function () {\r\n $('.door').hide();\r\n deferred.resolve();\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n SWIC6Desktop.prototype.closeDoor = function () {\r\n var self = this;\r\n var deferred = $.Deferred();\r\n\r\n $('.door').show();\r\n\r\n this.delay(0).then(function () {\r\n $('.panel0').removeClass('open');\r\n return self.delay(1000);\r\n }).then(function () {\r\n $('.panel1').removeClass('open');\r\n return self.delay(1000);\r\n }).then(function () {\r\n $('.panel2').removeClass('open');\r\n return self.delay(1000);\r\n }).then(function () {\r\n $('.panel3').removeClass('open');\r\n return self.delay(1000);\r\n }).then(function () {\r\n $('.panel4').removeClass('open');\r\n return self.delay(1000);\r\n }).then(function () {\r\n $('.panel5').removeClass('open');\r\n return self.delay(1000);\r\n }).then(function () {\r\n $('.panel6').removeClass('open');\r\n return self.delay(1000);\r\n }).then(function () {\r\n $('.panel7').removeClass('open');\r\n return self.delay(1000);\r\n }).then(function () {\r\n $('.s3lock').removeClass('open');\r\n return self.delay(3000);\r\n }).then(function () {\r\n deferred.resolve();\r\n });\r\n\r\n return deferred.promise();\r\n };\r\n\r\n SWIC6Desktop.prototype.fastCloseDoor = function () {\r\n var self = this;\r\n\r\n var deferred = $.Deferred();\r\n\r\n $('.door').show();\r\n this.delay(30).then(function () {\r\n $('.s3lock, .panel0, .panel1, .panel2, .panel3, .panel4, .panel5, .panel6, .panel7').removeClass('open');\r\n return self.delay(3030);\r\n }).then(function () {\r\n deferred.resolve();\r\n });\r\n\r\n return deferred.promise();\r\n };\r\n\r\n /******************\r\n * Recon\r\n ******************/\r\n\r\n SWIC6Desktop.prototype.showReconBoard = function (recons) {\r\n var self = this;\r\n $('#board, #board img').hide();\r\n $('.sb-wrapper').hide();\r\n\r\n this.hideMoon().then(function () {\r\n //return self.fastCloseDoor();\r\n }).then(function () {\r\n $('#board').show();\r\n\r\n self.toggleNav(true);\r\n\r\n //self.setupReconBoard(recons);\r\n\r\n $('#board [data-available]').off();\r\n $('#board [data-available=true]').off().on('click', function () {\r\n var quizType = $(this).data('quiztype');\r\n var reconUID = $(this).data('uid');\r\n\r\n //self.fastOpenDoor();\r\n self.startReconInstructions(quizType, reconUID);\r\n });\r\n });\r\n };\r\n\r\n SWIC6Desktop.prototype.setupReconBoard = function (recons) {\r\n $.each(recons, function (i, e) {\r\n var $element = $('.' + e.location);\r\n\r\n $element.attr('data-quiztype', e.type).data('quiztype', e.type);\r\n $element.attr('data-available', e.available).data('available', e.available);\r\n $element.attr('data-uid', e.uid).data('uid', e.uid);\r\n\r\n if (e.available) {\r\n $element.show();\r\n } else {\r\n $element.attr('data-quiztype', '');\r\n }\r\n });\r\n };\r\n\r\n SWIC6Desktop.prototype.hideReconBoard = function () {\r\n var self = this;\r\n\r\n //self.fastOpenDoor();\r\n $('#board').hide();\r\n $('.sb-wrapper').show();\r\n };\r\n\r\n /******************\r\n * Story\r\n ******************/\r\n\r\n SWIC6Desktop.prototype.hideStoryboard = function () {\r\n var self = this;\r\n\r\n var deferred = $.Deferred();\r\n\r\n $('.sb-panel0, .sb-panel1, .sb-panel2, .sb-panel3, .sb-panel4, .sb-panel5, .sb-panel6, .sb-panel7').removeClass('sb-open');\r\n self.fastOpenDoor().then(function () {\r\n \r\n self.resetLockNav();\r\n deferred.resolve();\r\n });\r\n\r\n return deferred.promise();\r\n };\r\n\r\n SWIC6Desktop.prototype.resetLockNav = function () {\r\n $('#left-navigation > .nav-1 > .default-nav > img').attr('src', '/content/images/asmo/2015swic/desktop/nav-gray-2.png').off().removeClass('pointer-cursor');\r\n $('#left-navigation > .nav-2 > .default-nav > img').attr('src', '/content/images/asmo/2015swic/desktop/nav-gray-2.png').off().removeClass('pointer-cursor');\r\n $('#left-navigation > .nav-3 > .default-nav > img').attr('src', '/content/images/asmo/2015swic/desktop/nav-gray-2.png').off().removeClass('pointer-cursor');\r\n $('#left-navigation > .nav-4 > .default-nav > img').attr('src', '/content/images/asmo/2015swic/desktop/nav-gray-2.png').off().removeClass('pointer-cursor');\r\n $('#right-navigation > .nav-1 > .default-nav > img').attr('src', '/content/images/asmo/2015swic/desktop/nav-gray-2.png').off().removeClass('pointer-cursor');\r\n $('#right-navigation > .nav-2 > .default-nav > img').attr('src', '/content/images/asmo/2015swic/desktop/nav-gray-2.png').off().removeClass('pointer-cursor');\r\n $('#right-navigation > .nav-3 > .default-nav > img').attr('src', '/content/images/asmo/2015swic/desktop/nav-gray-2.png').off().removeClass('pointer-cursor');\r\n $('#right-navigation > .nav-4 > .default-nav > img').attr('src', '/content/images/asmo/2015swic/desktop/nav-gray-2.png').off().removeClass('pointer-cursor');\r\n };\r\n\r\n SWIC6Desktop.prototype.resetStoryboard = function () {\r\n var self = this;\r\n\r\n //Show the storyboard nav circles\r\n var videoEvent = $('#left-navigation > .nav-1 > .default-nav > img');\r\n var storyline = $('#left-navigation > .nav-2 > .default-nav > img');\r\n var crewLogButton = $('#left-navigation > .nav-3 > .default-nav > img');\r\n var trans1button = $('#left-navigation > .nav-4 > .default-nav > img');\r\n var trans2button = $('#right-navigation > .nav-1 > .default-nav > img');\r\n var trans3button = $('#right-navigation > .nav-2 > .default-nav > img');\r\n\r\n //Setup Video Event\r\n videoEvent.attr('src', '/content/images/asmo/2015swic/desktop/nav-lightgray.png').addClass('pointer-cursor');\r\n videoEvent.hover(function () {\r\n videoEvent.attr('src', '/content/images/asmo/2015swic/desktop/nav-lightgray-hover.png')\r\n }, function () {\r\n videoEvent.attr('src', '/content/images/asmo/2015swic/desktop/nav-lightgray.png')\r\n });\r\n videoEvent.on(\"click\", function () {\r\n window.location = window.location.origin + IREP.options.appUrl + 'asmo/quiz?code=201505vid_SWIC6VideoEvent';\r\n });\r\n\r\n\r\n //Setup Storyline\r\n storyline.attr('src', '/content/images/asmo/2015swic/desktop/nav-yellow.png').addClass('pointer-cursor');\r\n storyline.hover(function () {\r\n storyline.attr('src', '/content/images/asmo/2015swic/desktop/nav-yellow-hover.png')\r\n }, function () {\r\n storyline.attr('src', '/content/images/asmo/2015swic/desktop/nav-yellow.png')\r\n });\r\n storyline.on(\"click\", function () {\r\n $('.door, #story').fadeOut();\r\n \r\n $('.s3lock, .panel0, .panel1, .panel2, .panel3, .panel4, .panel5, .panel6, .panel7').addClass('open');\r\n\r\n $('#storyline').fadeIn(400);\r\n });\r\n\r\n\r\n // Setup crew log button\r\n crewLogButton.attr('src', '/content/images/asmo/2015swic/desktop/nav-lightestblue-2.png').addClass('pointer-cursor');\r\n crewLogButton.hover(function () {\r\n crewLogButton.attr('src', '/content/images/asmo/2015swic/desktop/nav-lightestblue-hover-2.png')\r\n }, function () {\r\n crewLogButton.attr('src', '/content/images/asmo/2015swic/desktop/nav-lightestblue-2.png')\r\n });\r\n crewLogButton.on('click', function () {\r\n $(\"#left-navigation, #right-navigation\").hide();\r\n self.trackStory('crew-log');\r\n self.selectedPage = 'sb-item';\r\n\r\n //Adds the \"open\" class to all panels. Using this, instead of the OpenDoors function, so that they open simultaneously\r\n $('.s3lock, .panel0, .panel1, .panel2, .panel3, .panel4, .panel5, .panel6, .panel7').addClass('open');\r\n\r\n //Pulls down the doors with the labels on them for the crew log\r\n setTimeout(function () {\r\n $('.door').hide();\r\n $('.sb-panel0, .sb-panel1, .sb-panel2, .sb-panel3, .sb-panel4, .sb-panel5, .sb-panel6, .sb-panel7').removeClass('sb-open');\r\n }, 2700);\r\n });\r\n\r\n // Setup transmission 1 button\r\n trans1button.attr('src', '/content/images/asmo/2015swic/desktop/nav-mediumblue-2.png').addClass('pointer-cursor');\r\n trans1button.hover(function () {\r\n trans1button.attr('src', '/content/images/asmo/2015swic/desktop/nav-mediumblue-hover-2.png')\r\n }, function () {\r\n trans1button.attr('src', '/content/images/asmo/2015swic/desktop/nav-mediumblue-2.png')\r\n });\r\n trans1button.on('click', function () {\r\n $(\"#left-navigation, #right-navigation\").hide();\r\n self.trackStory('transmission1');\r\n self.selectedPage = 'sb-item';\r\n\r\n self.ShowComic('transmission1');\r\n\r\n //Adds the \"open\" class to all panels. Using this, instead of the OpenDoors function, so that they open simultaneously\r\n $('.s3lock, .panel0, .panel1, .panel2, .panel3, .panel4, .panel5, .panel6, .panel7').addClass('open');\r\n });\r\n\r\n // Setup transmission 2 button\r\n trans2button.attr('src', '/content/images/asmo/2015swic/desktop/nav-recon-orange-2.png').addClass('pointer-cursor');\r\n trans2button.hover(function () {\r\n trans2button.attr('src', '/content/images/asmo/2015swic/desktop/nav-recon-orange-hover-2.png')\r\n }, function () {\r\n trans2button.attr('src', '/content/images/asmo/2015swic/desktop/nav-recon-orange-2.png')\r\n });\r\n trans2button.on('click', function () {\r\n self.trackStory('transmission2');\r\n self.selectedPage = 'sb-item';\r\n\r\n self.ShowComic('transmission2');\r\n\r\n //Adds the \"open\" class to all panels. Using this, instead of the OpenDoors function, so that they open simultaneously\r\n $('.s3lock, .panel0, .panel1, .panel2, .panel3, .panel4, .panel5, .panel6, .panel7').addClass('open');\r\n });\r\n\r\n // Setup transmission 3 button\r\n trans3button.attr('src', '/content/images/asmo/2015swic/desktop/nav-recon-pink-2.png').addClass('pointer-cursor');\r\n trans3button.hover(function () {\r\n trans3button.attr('src', '/content/images/asmo/2015swic/desktop/nav-recon-pink-hover-2.png')\r\n }, function () {\r\n trans3button.attr('src', '/content/images/asmo/2015swic/desktop/nav-recon-pink-2.png')\r\n });\r\n trans3button.on('click', function () {\r\n self.trackStory('transmission3');\r\n self.selectedPage = 'sb-item';\r\n\r\n self.ShowComic('transmission3');\r\n\r\n //Adds the \"open\" class to all panels. Using this, instead of the OpenDoors function, so that they open simultaneously\r\n $('.s3lock, .panel0, .panel1, .panel2, .panel3, .panel4, .panel5, .panel6, .panel7').addClass('open');\r\n });\r\n \r\n //Hide all character bios\r\n $('#roger-newton-bio, #carson-kipling-bio, #salem-shrike-bio, #sigfried-shrike-bio, #blue-5-bio, #doc-lieber-bio').hide();\r\n $('.story-template').hide();\r\n\r\n //Hide all comics\r\n $('#comics, #transmission1, #transmission2, #transmission3').hide();\r\n\r\n //Show storyboard doors and add the sb-open class to the panels\r\n $('.sb-doors').show();\r\n $('.sb-panel0, .sb-panel1, .sb-panel2, .sb-panel3, .sb-panel4, .sb-panel5, .sb-panel6, .sb-panel7').addClass('sb-open');\r\n };\r\n\r\n SWIC6Desktop.prototype.changeStoryboardCharacter = function (character) {\r\n this.track('crew-log', character, null, 0);\r\n\r\n var characterDiv = '#' + character + '-bio';\r\n\r\n //Hide all user profiles first\r\n $('#roger-newton-bio, #carson-kipling-bio, #salem-shrike-bio, #sigfried-shrike-bio, #blue-5-bio, #doc-lieber-bio').hide();\r\n setTimeout(function () {\r\n $(\".profile-summary, .profile-description\").scrollTop(0);\r\n }, 1);\r\n\r\n //Hide doors\r\n $('.sb-doors').hide();\r\n\r\n //Show story template div\r\n $('.story-template').show();\r\n\r\n //Show character div\r\n $(characterDiv).show();\r\n };\r\n\r\n SWIC6Desktop.prototype.ShowComic = function (comic) {\r\n if (comic === 'transmission1') {\r\n $('#t1-page-cover-0').attr('src', '/content/images/asmo/2015swic/storyboard/comics/t1-0.jpg');\r\n $('#t1-page-cover-1').attr('src', '/content/images/asmo/2015swic/storyboard/comics/t1-page1.jpg');\r\n $('#t1-page-cover-2').attr('src', '/content/images/asmo/2015swic/storyboard/comics/t1-page2.jpg');\r\n $('#t1-page-cover-3').attr('src', '/content/images/asmo/2015swic/storyboard/comics/t1-page3.jpg');\r\n $('#t1-page-cover-4').attr('src', '/content/images/asmo/2015swic/storyboard/comics/t1-page4.jpg');\r\n $('#t1-page-cover-5').attr('src', '/content/images/asmo/2015swic/storyboard/comics/t1-page5.jpg');\r\n $('#t1-page-cover-6').attr('src', '/content/images/asmo/2015swic/storyboard/comics/t1-page6.jpg');\r\n $('#t1-page-cover-7').attr('src', '/content/images/asmo/2015swic/storyboard/comics/t1-page7.jpg');\r\n $('#t1-page-cover-8').attr('src', '/content/images/asmo/2015swic/storyboard/comics/t1-page8.jpg');\r\n $('#t1-page-cover-9').attr('src', '/content/images/asmo/2015swic/storyboard/comics/t1-page9.jpg');\r\n $('#t1-page-cover-10').attr('src', '/content/images/asmo/2015swic/storyboard/comics/t1-page10.jpg');\r\n } else if (comic === 'transmission2') {\r\n $('#t2-page-cover-0').attr('src', '/content/images/asmo/2015swic/storyboard/comics/t2-0.png');\r\n $('#t2-page-cover-1').attr('src', '/content/images/asmo/2015swic/storyboard/comics/t2-page1.png');\r\n $('#t2-page-cover-2').attr('src', '/content/images/asmo/2015swic/storyboard/comics/t2-page2.png');\r\n $('#t2-page-cover-3').attr('src', '/content/images/asmo/2015swic/storyboard/comics/t2-page3.png');\r\n $('#t2-page-cover-4').attr('src', '/content/images/asmo/2015swic/storyboard/comics/t2-page4.png');\r\n $('#t2-page-cover-5').attr('src', '/content/images/asmo/2015swic/storyboard/comics/t2-page5.png');\r\n $('#t2-page-cover-6').attr('src', '/content/images/asmo/2015swic/storyboard/comics/t2-page6.png');\r\n $('#t2-page-cover-7').attr('src', '/content/images/asmo/2015swic/storyboard/comics/t2-page7.png');\r\n $('#t2-page-cover-8').attr('src', '/content/images/asmo/2015swic/storyboard/comics/t2-page8.png');\r\n $('#t2-page-cover-9').attr('src', '/content/images/asmo/2015swic/storyboard/comics/t2-page9.png');\r\n } else if (comic === 'transmission3') {\r\n $('#t3-page-cover-0').attr('src', '/content/images/asmo/2015swic/storyboard/comics/t3-0.jpg');\r\n $('#t3-page-cover-1').attr('src', '/content/images/asmo/2015swic/storyboard/comics/t3-page1.jpg');\r\n $('#t3-page-cover-2').attr('src', '/content/images/asmo/2015swic/storyboard/comics/t3-page2.jpg');\r\n $('#t3-page-cover-3').attr('src', '/content/images/asmo/2015swic/storyboard/comics/t3-page3.jpg');\r\n $('#t3-page-cover-4').attr('src', '/content/images/asmo/2015swic/storyboard/comics/t3-page4.jpg');\r\n $('#t3-page-cover-5').attr('src', '/content/images/asmo/2015swic/storyboard/comics/t3-page5.jpg');\r\n $('#t3-page-cover-6').attr('src', '/content/images/asmo/2015swic/storyboard/comics/t3-page6.jpg');\r\n $('#t3-page-cover-7').attr('src', '/content/images/asmo/2015swic/storyboard/comics/t3-page7.jpg');\r\n $('#t3-page-cover-8').attr('src', '/content/images/asmo/2015swic/storyboard/comics/t3-page8.jpg');\r\n $('#t3-page-cover-9').attr('src', '/content/images/asmo/2015swic/storyboard/comics/t3-page9.jpg');\r\n $('#t3-page-cover-10').attr('src', '/content/images/asmo/2015swic/storyboard/comics/t3-page10.jpg');\r\n }\r\n\r\n $('.door').hide();\r\n $('.sb-doors').hide();\r\n $('#transmission1, #transmission2, #transmission3, #transmission1-pages, #transmission2-pages, #transmission3-pages').hide();\r\n $('#' + comic + ' > .page-selector').show();\r\n $('#comics, #' + comic).show();\r\n };\r\n\r\n SWIC6Desktop.prototype.goToComicPage = function (comic, page) {\r\n this.track(comic, page, null, 0);\r\n $('.back-button > img, .next-button > img').show(); //Show the back and next button by default\r\n $('#' + comic + ' > .page-selector').hide(); //hide the page selector\r\n $('#' + comic + '-pages').show(); //Show the transmission pages div\r\n\r\n var urlTemplate = '/content/images/asmo/2015swic/storyboard/comics/full/t' + comic.substr(comic.length - 1) + '-page';\r\n var urlExtention = '.png';\r\n\r\n var imgUrl = urlTemplate + page + urlExtention; //Builds the image url\r\n var comicDiv = $('#' + comic + '-pages > .comic-col > .active-slide');\r\n var imgSelector = $('#' + comic + '-pages > .comic-col > .active-slide > img');\r\n var pageCount = comicDiv.attr('data-page-count');\r\n\r\n if (page === 0) $('.back-button > img').hide(); //Hides back button\r\n if (pageCount == page) $('.next-button > img').hide(); //Hides next button, if this is the last slide\r\n\r\n comicDiv.attr('data-slide-number', page.toString());\r\n imgSelector.attr('src', imgUrl);\r\n\r\n setTimeout(function () {\r\n $('#' + comic + ' > .transmission-pages').focus();\r\n $(\".active-slide\").scrollTop(0);\r\n }, 1)\r\n };\r\n\r\n SWIC6Desktop.prototype.comicNextSlide = function (comic) {\r\n var self = this;\r\n\r\n var comicDiv = $('#' + comic + '-pages > .comic-col > .active-slide');\r\n var slideNumber = comicDiv.attr('data-slide-number');\r\n var nextSlideNumber = parseInt(slideNumber) + 1;\r\n var pageCount = comicDiv.attr('data-page-count');\r\n\r\n if (pageCount == slideNumber) return;\r\n\r\n self.goToComicPage(comic, nextSlideNumber);\r\n };\r\n\r\n SWIC6Desktop.prototype.comicPreviousSlide = function (comic) {\r\n var self = this;\r\n\r\n var comicDiv = $('#' + comic + '-pages > .comic-col > .active-slide');\r\n var slideNumber = comicDiv.attr('data-slide-number');\r\n var previousSlideNumber = parseInt(slideNumber) - 1;\r\n\r\n if (slideNumber == 0) return;\r\n\r\n self.goToComicPage(comic, previousSlideNumber);\r\n };\r\n\r\n\r\n\r\n return SWIC6Desktop;\r\n}());\r\n\r\nIREP.SWIC6EarlyRegistration = (function () {\r\n\r\n var SWIC6EarlyRegistration = function () {\r\n var self = this;\r\n\r\n $(\"#footer\").remove();\r\n $(\"#earlyRegistration\").show();\r\n\r\n $(\"input[name='position']\").change(function () {\r\n if ($(\"#positionGM:checked\").length > 0) {\r\n $(\".thanksGM\").show();\r\n } else {\r\n $(\".thanksGM\").hide();\r\n }\r\n\r\n if ($(\"#positionDM:checked\").length > 0) {\r\n $(\".thanksDM\").show();\r\n } else {\r\n $(\".thanksDM\").hide();\r\n }\r\n\r\n if ($(\"#positionAU:checked\").length > 0) {\r\n $(\".thanksAU\").show();\r\n } else {\r\n $(\".thanksAU\").hide();\r\n }\r\n\r\n });\r\n\r\n IREP.callApi({\r\n url: \"swic6/managerinfo\",\r\n type: \"GET\"\r\n }).done(function (d) {\r\n if (!d.info) {\r\n $(\"#chkGM\").one(\"click\", function () {\r\n if ($(\"#chkGM:checked\").length > 0) {\r\n\r\n IREP.callApi({\r\n url: \"swic6/managerinfo\",\r\n type: \"POST\",\r\n data: { position: \"GM\" }\r\n }).done();\r\n self.disableForGM();\r\n self.setupSchoolNominations();\r\n }\r\n });\r\n\r\n $(\"#chkDM\").one(\"click\", function () {\r\n if ($(\"#chkDM:checked\").length > 0) {\r\n IREP.callApi({\r\n url: \"swic6/managerinfo\",\r\n type: \"POST\",\r\n data: { position: \"DM\" }\r\n }).done();\r\n self.disableForDM();\r\n self.setupSchoolNominations();\r\n }\r\n });\r\n\r\n $(\"#managerInfoSubmit\").one(\"click\", function () {\r\n self.submitAU();\r\n });\r\n\r\n } else {\r\n if (d.info.position == \"GM\") {\r\n self.disableForGM();\r\n $(\"#chkGM, #positionGM\").attr(\"checked\", true);\r\n } else if (d.info.position == \"DM\") {\r\n self.disableForDM();\r\n $(\"#chkDM, #positionDM\").attr(\"checked\", true);\r\n } else if (d.info.position == \"AU\") {\r\n self.disableForAU();\r\n document.getElementById(\"managerEmail\").value = d.info.managerEmail;\r\n document.getElementById(\"managerName\").value = d.info.managerName;\r\n $(\"#positionAU\").attr(\"checked\", true);\r\n }\r\n self.setupSchoolNominations();\r\n }\r\n });\r\n\r\n };\r\n\r\n SWIC6EarlyRegistration.prototype.disableForGM = function () {\r\n document.getElementById(\"chkGM\").disabled = true;\r\n $(\"#positionDM\").parent().remove();\r\n $(\"#positionAU\").parent().remove();\r\n $(\"#thanksGM\").show();\r\n $(\".thanksGM\").show();\r\n };\r\n\r\n SWIC6EarlyRegistration.prototype.disableForDM = function () {\r\n document.getElementById(\"chkDM\").disabled = true;\r\n $(\"#positionAU\").parent().remove();\r\n $(\"#positionGM\").parent().remove();\r\n $(\"#thanksDM\").show();\r\n $(\".thanksDM\").show();\r\n };\r\n\r\n SWIC6EarlyRegistration.prototype.disableForAU = function () {\r\n document.getElementById(\"chkDM\").disabled = true;\r\n $(\"#positionDM\").parent().remove();\r\n $(\"#positionGM\").parent().remove();\r\n $(\"#managerName, #managerEmail\").attr(\"disabled\", true);\r\n $(\"#managerInfoSubmit\").hide();\r\n $(\".thanksAU\").show();\r\n };\r\n\r\n SWIC6EarlyRegistration.prototype.submitAU = function () {\r\n var self = this;\r\n if (self.validateManagerInfo()) {\r\n self.disableForAU();\r\n\r\n IREP.callApi({\r\n url: \"swic6/managerinfo\",\r\n type: \"POST\",\r\n data: { position: \"AU\", managerName: document.getElementById(\"managerName\").value, managerEmail: document.getElementById(\"managerEmail\").value }\r\n }).done();\r\n\r\n self.setupSchoolNominations();\r\n } else {\r\n $(\"#managerInfoSubmit\").one(\"click\", function () {\r\n self.submitAU();\r\n });\r\n }\r\n\r\n }\r\n\r\n SWIC6EarlyRegistration.prototype.validateManagerInfo = function () {\r\n\r\n var errors = 0;\r\n var rg = /\\w+([-+.'\\w]+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*/gi;\r\n\r\n if (document.getElementById(\"managerEmail\").value.match(rg) == null) {\r\n errors += 1;\r\n document.getElementById(\"managerEmail\").style.border = \"solid 1px red\";\r\n } else {\r\n document.getElementById(\"managerEmail\").style.border = \"\";\r\n }\r\n\r\n if (document.getElementById(\"managerName\").value == \"\") {\r\n errors += 1;\r\n document.getElementById(\"managerName\").style.border = \"solid 1px red\";\r\n } else {\r\n document.getElementById(\"managerName\").style.border = \"\";\r\n }\r\n\r\n if (errors > 0) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n SWIC6EarlyRegistration.prototype.setupSchoolNominations = function () {\r\n var self = this;\r\n\r\n IREP.callApi({\r\n url: \"swic6/schoolnominations\",\r\n type: \"GET\"\r\n }).done(function (d) {\r\n\r\n if (d.schools) {\r\n $(d.schools).each(function () {\r\n $(\"#nominatedSchools\").append(\"
  • \" + this.name + \" \" + this.city + \", \" + this.state + \"
  • \");\r\n });\r\n\r\n if (d.schools.length > 4) {\r\n $(\"#newNominations\").hide();\r\n } else if (d.schools.length == 0) {\r\n $(\"#schoolsNominated\").hide();\r\n }\r\n }\r\n\r\n $(\"#schoolNominations, #schoolNav\").show();\r\n\r\n $(\"#submitNomination\").on(\"click\", function () {\r\n self.submitSchoolNomination();\r\n });\r\n });\r\n\r\n }\r\n\r\n SWIC6EarlyRegistration.prototype.submitSchoolNomination = function () {\r\n var self = this;\r\n\r\n if (self.validateSchoolNomination()) {\r\n IREP.callApi({\r\n url: \"swic6/schoolnominations\",\r\n type: \"POST\",\r\n data: { school: document.getElementById(\"schoolName\").value, city: document.getElementById(\"schoolCity\").value, state: document.getElementById(\"schoolState\").value }\r\n }).done(function (d) {\r\n\r\n if (d.schools) {\r\n $('#nominatedSchools li').remove();\r\n $(d.schools).each(function () {\r\n $(\"#nominatedSchools\").append(\"
  • \" + this.name + \" \" + this.city + \", \" + this.state + \"
  • \");\r\n });\r\n\r\n if (d.schools.length > 4) {\r\n $(\"#newNominations\").hide();\r\n }\r\n\r\n $(\"#schoolsNominated\").show();\r\n\r\n document.getElementById(\"schoolName\").value = \"\";\r\n document.getElementById(\"schoolCity\").value = \"\";\r\n document.getElementById(\"schoolState\").value = \"\";\r\n }\r\n });\r\n }\r\n\r\n }\r\n\r\n SWIC6EarlyRegistration.prototype.validateSchoolNomination = function () {\r\n\r\n var errors = 0;\r\n\r\n if (document.getElementById(\"schoolName\").value == \"\") {\r\n errors += 1;\r\n document.getElementById(\"schoolName\").style.border = \"solid 1px red\";\r\n } else {\r\n document.getElementById(\"schoolName\").style.border = \"\";\r\n }\r\n\r\n if (document.getElementById(\"schoolCity\").value == \"\") {\r\n errors += 1;\r\n document.getElementById(\"schoolCity\").style.border = \"solid 1px red\";\r\n } else {\r\n document.getElementById(\"schoolCity\").style.border = \"\";\r\n }\r\n\r\n if (document.getElementById(\"schoolState\").value == \"\") {\r\n errors += 1;\r\n document.getElementById(\"schoolState\").style.border = \"solid 1px red\";\r\n } else {\r\n document.getElementById(\"schoolState\").style.border = \"\";\r\n }\r\n\r\n if (errors > 0) {\r\n return false;\r\n } else {\r\n return true;\r\n }\r\n }\r\n\r\n return SWIC6EarlyRegistration;\r\n}());","var IREP = IREP || {};\r\n\r\nIREP.SWIC6Mobile = (function() {\r\n var defaultOptions = {\r\n mode: 'mobile'\r\n };\r\n\r\n var SWIC6Mobile = function(options) {\r\n var self = this;\r\n\r\n this.options = $.extend({}, defaultOptions, options);\r\n IREP.SWIC6.call(this, this.options);\r\n\r\n this.animateRings();\r\n $('#intro').show();\r\n this.setupOnce();\r\n\r\n this.delay(2000).then(function() {\r\n return self.hideMoon();\r\n }).then(function() {\r\n if (!self.options.firstVisit) {\r\n self.startHome();\r\n } else {\r\n return self.fadeTransition('.elevate', 1, 2000);\r\n }\r\n }).then(function() {\r\n return self.fadeTransition('.loading', 0, 2000);\r\n }).then(function() {\r\n $('.loading').hide();\r\n return self.fadeTransition('#intro p, #intro hr', 1, 2000);\r\n }).then(function() {\r\n $('#intro .home-button img').off().one('touchstart click', function(e) {\r\n self.startHome(); //needs to be tutorial in the future\r\n\r\n e.stopPropagation();\r\n e.preventDefault();\r\n return false;\r\n });\r\n });\r\n };\r\n\r\n SWIC6Mobile.prototype = Object.create(IREP.SWIC6.prototype);\r\n SWIC6Mobile.prototype.constructor = SWIC6Mobile;\r\n\r\n SWIC6Mobile.prototype.fadeTransition = function(element, opacity, duration) {\r\n var deferred = $.Deferred();\r\n $(element).css('opacity', opacity);\r\n\r\n this.delay(duration).then(function() {\r\n deferred.resolve();\r\n });\r\n\r\n return deferred.promise();\r\n };\r\n\r\n SWIC6Mobile.prototype.setupOnce = function() {\r\n var self = this;\r\n\r\n $(\"#home-leaderboard\").on(\"click\", function() { self.startLeaderboardNav(); });\r\n $(\"#home-garage\").on(\"click\", function () {\r\n self.startGarage();\r\n });\r\n $(\"#home-recons\").on(\"click\", function() { self.startRecon(); });\r\n $(\".home-button\").on(\"click\", function() { self.startHome(); })\r\n\r\n /* Garage nav */\r\n this.garage = ko.observable({});\r\n ko.applyBindings(self, $('#mobile-garage')[0]);\r\n };\r\n\r\n /*************************\r\n * HOME\r\n *************************/\r\n\r\n SWIC6Mobile.prototype.startHome = function () {\r\n $('#topbar-svg, #bottombar-svg').show();\r\n this.switchPage('#home', 'home');\r\n };\r\n\r\n /*************************\r\n * LeaderboardNav\r\n *************************/\r\n\r\n SWIC6Mobile.prototype.startLeaderboardNav = function() {\r\n var self = this;\r\n this.switchPage('#leaderboardNav', 'leaderboardNav');\r\n\r\n this.trackNavigation('leaderboards');\r\n\r\n $('#leaderboardNav-svg [data-nav]').off().on('click', function() {\r\n var navItem = $(this).data('nav');\r\n switch (navItem) {\r\n case \"profile\":\r\n self.trackLeaderboard('profile');\r\n self.startProfile();\r\n break;;\r\n case \"dashboard\":\r\n self.trackLeaderboard('dashboard');\r\n self.startDashboard();\r\n break;\r\n case \"leaderboard\":\r\n self.trackLeaderboard('leaderboard');\r\n self.startLeaderboard();\r\n break;\r\n case \"token\":\r\n self.trackLeaderboard('token');\r\n self.startToken();\r\n break;\r\n }\r\n });\r\n };\r\n\r\n /************************\r\n * Individual Profile\r\n ************************/\r\n\r\n SWIC6Mobile.prototype.startProfile = function() {\r\n var self = this;\r\n $('#profile').off().one('touchstart click', 'svg', function(e) {\r\n self.startLeaderboardNav();\r\n\r\n e.stopPropagation();\r\n e.preventDefault();\r\n return false;\r\n });\r\n this.switchPage('#profile', 'profile').then(function() {\r\n $('#profile').children().hide();\r\n return $.when(self.getIndividualProfile(), self.showIndividualProfile(), self.showMoon());\r\n }).then(function(profile) {\r\n return $.when(profile, self.hideMoon());\r\n }).then(function(profile) {\r\n $('#profile').children().show();\r\n });\r\n };\r\n\r\n SWIC6Mobile.prototype.getIndividualProfile = function() {\r\n var deferred = $.Deferred();\r\n\r\n deferred.resolve();\r\n\r\n return deferred.promise();\r\n };\r\n\r\n SWIC6Mobile.prototype.getProfile = function () {\r\n return IREP.callApi({ url: 'swic6/individualinfo' })\r\n };\r\n\r\n SWIC6Mobile.prototype.getIndividualLeaderboard = function () {\r\n return IREP.callApi({ url: 'swic6/individual' });\r\n };\r\n\r\n SWIC6Mobile.prototype.showIndividualProfile = function () {\r\n var self = this;\r\n $.when(this.getProfile(), this.getIndividualLeaderboard(), this.getIndividualProfile()).then(function (individual, individualinfo) {\r\n ko.applyBindings({ participants: individualinfo[0].leaderboard, profile: individual[0].info }, $('#profile')[0]);\r\n });\r\n };\r\n\r\n /************************\r\n * Store Dashboard\r\n ************************/\r\n\r\n SWIC6Mobile.prototype.startDashboard = function() {\r\n var self = this;\r\n $('#dashboard').off().one('touchstart click', 'svg', function(e) {\r\n self.startLeaderboardNav();\r\n\r\n e.stopPropagation();\r\n e.preventDefault();\r\n return false;\r\n });\r\n this.switchPage('#dashboard', 'dashboard').then(function() {\r\n $('#dashboard').children().hide();\r\n return $.when(self.getIndividualProfile(), self.showStoreDashboard(), self.showMoon());\r\n }).then(function(dashboard) {\r\n return $.when(dashboard, self.hideMoon());\r\n }).then(function(dashboard) {\r\n $('#dashboard').children().show();\r\n });\r\n };\r\n\r\n SWIC6Mobile.prototype.getStoreDashboard = function() {\r\n var deferred = $.Deferred();\r\n\r\n deferred.resolve();\r\n\r\n return deferred.promise();\r\n };\r\n\r\n SWIC6Mobile.prototype.getManagerInfo = function () {\r\n return IREP.callApi({ url: 'swic6/managerinfo' });\r\n };\r\n\r\n SWIC6Mobile.prototype.getStoreProfile = function () {\r\n return IREP.callApi({ url: 'swic6/storeinfo' })\r\n };\r\n\r\n SWIC6Mobile.prototype.getStoreDashboard = function () {\r\n return IREP.callApi({ url: 'swic6/dashboard' });\r\n }; \r\n\r\n SWIC6Mobile.prototype.showStoreDashboard = function () {\r\n var self = this;\r\n $.when(this.getStoreProfile(), this.getManagerInfo(), this.getStoreDashboard(), this.getIndividualProfile()).then(function (storeProfile, managerInfo, storeDashboard) {\r\n ko.applyBindings({ storeProfile: storeProfile[0].info, manager: managerInfo[0].info, dashboard: storeDashboard[0].dashboard }, $('#dashboard')[0]);\r\n });\r\n };\r\n /***********************\r\n * Store Leaderboard\r\n **********************/\r\n\r\n SWIC6Mobile.prototype.startLeaderboard = function() {\r\n var self = this;\r\n\r\n $('#leaderboard').off().one('touchstart click', 'svg', function(e) {\r\n self.startLeaderboardNav();\r\n\r\n e.stopPropagation();\r\n e.preventDefault();\r\n return false;\r\n });\r\n this.switchPage('#leaderboard', 'leaderboard').then(function() {\r\n $('#leaderboard').children().hide();\r\n return $.when(self.getStoreLeaderboard(), self.showStoreLeaderboard(), self.showMoon());\r\n }).then(function(leaderboard) {\r\n return $.when(leaderboard, self.hideMoon());\r\n }).then(function(leaderboard) {\r\n $('#leaderboard').children().show();\r\n });\r\n };\r\n\r\n SWIC6Mobile.prototype.getStoreLeaderboard = function() {\r\n var deferred = $.Deferred();\r\n\r\n deferred.resolve();\r\n\r\n return deferred.promise();\r\n };\r\n\r\n SWIC6Mobile.prototype.getStoreLeaderboard = function () {\r\n return IREP.callApi({ url: 'swic6/storeleaderboard' });\r\n };\r\n\r\n SWIC6Mobile.prototype.showStoreLeaderboard = function () {\r\n var self = this;\r\n $.when(this.getStoreProfile(), this.getStoreLeaderboard(), this.getManagerInfo(), this.getIndividualProfile()).then(function (storeProfile, storeLeaderboard, managerInfo) {\r\n ko.applyBindings({ storeProfile: storeProfile[0].info, manager: managerInfo[0].info, leaderboard: storeLeaderboard[0].leaderboard }, $('#leaderboard')[0]);\r\n });\r\n };\r\n\r\n /**********************\r\n * Token Redemption\r\n ***********************/\r\n\r\n SWIC6Mobile.prototype.startToken = function() {\r\n var self = this;\r\n $('#token').off().one('touchstart click', '#back-svg', function(e) {\r\n self.startLeaderboardNav();\r\n\r\n e.stopPropagation();\r\n e.preventDefault();\r\n return false;\r\n });\r\n this.switchPage('#token', 'token').then(function() {\r\n $('#token').hide();\r\n return $.when(self.setupTokens(), self.showMoon());\r\n }).then(function(token) {\r\n return $.when(token, self.hideMoon());\r\n }).then(function(token) {\r\n $('#token').show();\r\n });;\r\n };\r\n\r\n SWIC6Mobile.prototype.setupTokens = function () {\r\n var self = this;\r\n var deferred = $.Deferred();\r\n\r\n self.getProfile().done(function (d) {\r\n $(\"#weeklyDrawingEntries\").html(d.info.drawingEntries);\r\n $(\"#availableTokens\").html(d.info.tokensAvailable);\r\n\r\n if (d.info.tokensAvailable > 0)\r\n {\r\n $(\"#redeem-svg\").off().one(\"touchstart\", function () {\r\n self.getTokenRedemption();\r\n });\r\n\r\n } else {\r\n $(\"#redeem-svg\").hide();\r\n }\r\n \r\n deferred.resolve();\r\n });\r\n\r\n return deferred.promise();\r\n }\r\n\r\n SWIC6Mobile.prototype.getTokenRedemption = function() {\r\n var deferred = $.Deferred();\r\n var self = this;\r\n\r\n IREP.callApi({\r\n url: \"swic6/redeemtoken\"\r\n }).done(function (d) {\r\n if (d.info) {\r\n\r\n\r\n $(\"#weeklyDrawingEntries\").html(\"+\" + d.info.randomEntries)\r\n setTimeout(function () { $(\"#weeklyDrawingEntries\").html(d.info.drawingEntries); }, 2000);\r\n $(\"#availableTokens\").html(d.info.availableTokens);\r\n\r\n\r\n if(d.info.availableTokens > 0)\r\n {\r\n $(\"#redeem-svg\").off().one(\"touchstart\", function () {\r\n self.getTokenRedemption();\r\n });\r\n }\r\n }\r\n\r\n deferred.resolve();\r\n });\r\n\r\n return deferred.promise();\r\n };\r\n\r\n /****************************\r\n * Recon\r\n ***********************/\r\n\r\n SWIC6Mobile.prototype.showReconBoard = function (recons) {\r\n var self = this;\r\n\r\n this.trackNavigation('recon');\r\n\r\n var utc = moment.utc();\r\n var revealImage = (utc.add(utc.hours() >= 20 ? 1 : 0, 'days').dayOfYear() % 9) + 1;\r\n $('#recon > img').attr('src', '/Content/Images/ASMO/2015SWIC/mobile/recon-hero-0' + revealImage + '.png');\r\n\r\n this.setupReconBoard(recons);\r\n $.when(this.hideMoon()).then(function () {\r\n $('#recon').children().show();\r\n\r\n $('#recon > img').css('left', $(document).width() / 2 - $('#recon > img').width() / 2);\r\n $('#board-svg [class*=slot]').off();\r\n $('#board-svg [class*=slot]:not([data-available=false])').off().one('touchstart click', function(e) {\r\n var quizType = $(this).data('quiztype');\r\n var reconUID = $(this).data('uid');\r\n\r\n self.startReconInstructions(quizType, reconUID);\r\n\r\n e.stopPropagation();\r\n e.preventDefault();\r\n return false;\r\n });\r\n });\r\n };\r\n\r\n SWIC6Mobile.prototype.setupReconBoard = function (recons) {\r\n $.each(recons, function (i, e) {\r\n var $element = $('.' + e.location);\r\n\r\n $element.attr('data-quiztype', e.type).data('quiztype', e.type);\r\n $element.attr('data-available', e.available).data('available', e.available);\r\n $element.attr('data-uid', e.uid).data('uid', e.uid);\r\n\r\n if (e.available === true) {\r\n $element.css('fill', '');\r\n } else {\r\n $element.css('fill', 'transparent');\r\n }\r\n });\r\n };\r\n\r\n /*********************************\r\n Garage\r\n **********************************/\r\n\r\n\r\n SWIC6Mobile.prototype.startGarage = function () {\r\n var self = this;\r\n\r\n $('#home').hide();\r\n\r\n $.when(self.getGarageInfo(), self.showMoon()).then(function(data) {\r\n return $.when(data, self.hideMoon());\r\n }).then(function (data) {\r\n var garage = data[0];\r\n self.garage(garage);\r\n \r\n\r\n $('#topbar-svg, #bottombar-svg').hide();\r\n $('#pilot-status, #flight-summary, #parts-collection, #stash-collection').hide();\r\n\r\n self.switchPage('#mobile-garage', 'mobile-garage').then(function () {\r\n self.trackNavigation('garage');\r\n });\r\n });\r\n };\r\n\r\n SWIC6Mobile.prototype.getGarageInfo = function () {\r\n return IREP.callApi({ url: 'swic6/garage' });\r\n };\r\n\r\n SWIC6Mobile.prototype.openHomeTab = function() {\r\n this.startHome();\r\n };\r\n\r\n SWIC6Mobile.prototype.openPilotStatus = function() {\r\n var label = 'pilot-status';\r\n if (!$('#' + label).is(':visible')) {\r\n $('#flight-summary, #parts-collection, #stash-collection').hide();\r\n this.trackGarage(label);\r\n $('#' + label).show();\r\n }\r\n };\r\n\r\n SWIC6Mobile.prototype.openFlightSummary = function() {\r\n var label = 'flight-summary';\r\n if (!$('#' + label).is(':visible')) {\r\n $('#pilot-status, #parts-collection, #stash-collection').hide();\r\n this.trackGarage(label);\r\n $('#' + label).show();\r\n }\r\n };\r\n\r\n SWIC6Mobile.prototype.openPartsCollection = function() {\r\n var label = 'parts-collection';\r\n if (!$('#' + label).is(':visible')) {\r\n $('#pilot-status, #flight-summary, #stash-collection').hide();\r\n this.trackGarage(label);\r\n $('#' + label).show();\r\n }\r\n };\r\n\r\n SWIC6Mobile.prototype.openStashCollection = function() {\r\n var label = 'stash-collection';\r\n if (!$('#' + label).is(':visible')) {\r\n $('#pilot-status, #flight-summary, #parts-collection').hide();\r\n this.trackGarage(label);\r\n $('#' + label).show();\r\n }\r\n };\r\n\r\n\r\n return SWIC6Mobile;\r\n}());"]}