{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/assets/icons/roadpursuit-grey-logo.svg","webpack:///./src/services/token.service.js","webpack:///./src/enums/RolesEnum.js","webpack:///./src/components/common/SocialMediaLinks.vue?3573","webpack:///./src/App.vue","webpack:///./src/components/Menu.vue","webpack:///./src/components/common/SocialMediaLinks.vue","webpack:///src/components/common/SocialMediaLinks.vue","webpack:///./src/components/common/SocialMediaLinks.vue?c77c","webpack:///./src/components/common/SocialMediaLinks.vue?7c29","webpack:///src/components/Menu.vue","webpack:///./src/components/Menu.vue?13a7","webpack:///./src/components/Menu.vue?7573","webpack:///./src/components/Footer.vue","webpack:///src/components/Footer.vue","webpack:///./src/components/Footer.vue?ae06","webpack:///./src/components/Footer.vue?dcc7","webpack:///./src/components/dialogs/MessageDialog.vue","webpack:///src/components/dialogs/MessageDialog.vue","webpack:///./src/components/dialogs/MessageDialog.vue?7858","webpack:///./src/components/dialogs/MessageDialog.vue?ab64","webpack:///src/App.vue","webpack:///./src/App.vue?ff1e","webpack:///./src/App.vue?315a","webpack:///./src/router/home.js","webpack:///./src/router/account.js","webpack:///./src/router/dashboard.js","webpack:///./src/store/modules/authorized.module.js","webpack:///./src/services/api.js","webpack:///./src/store/modules/roadtrips.module.js","webpack:///./src/store/modules/product.module.js","webpack:///./src/store/modules/account.module.js","webpack:///./src/store/modules/vehicle.module.js","webpack:///./src/store/modules/supplier.module.js","webpack:///./src/store/modules/expense.module.js","webpack:///./src/store/modules/gallery.module.js","webpack:///./src/store/modules/roadtrip-review.module.js","webpack:///./src/store/modules/newsletter.module.js","webpack:///./src/store/modules/store.module.js","webpack:///./src/store/modules/menu-helper.module.js","webpack:///./src/store/modules/dialog.module.js","webpack:///./src/services/user.service.js","webpack:///./src/store/const/account.js","webpack:///./src/store/const/alert.js","webpack:///./src/store/index.js","webpack:///./src/router/kalender.js","webpack:///./src/router/admin.js","webpack:///./src/router/galerijenreviews.js","webpack:///./src/router/overons.js","webpack:///./src/router/misc.js","webpack:///./src/router/tripdaymanager.js","webpack:///./src/router/index.js","webpack:///./src/plugins/vuetify.js","webpack:///./src/services/setupInterceptors.js","webpack:///./src/main.js","webpack:///./src/components/Menu.vue?ca56","webpack:///./src/assets/icons/Instagram_Icon.svg","webpack:///./src/mixins/route.mixin.js","webpack:///./src/mixins/format.mixin.js","webpack:///./src/components/Footer.vue?367f","webpack:///./src/assets/icons/facebook-logo.svg","webpack:///./src/App.vue?dd23"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","TokenService","getLocalRefreshToken","user","JSON","parse","localStorage","getItem","refreshToken","getLocalAccessToken","token","updateLocalAccessToken","setItem","stringify","getUser","setUser","removeUser","removeItem","getRPKey","role","RolesEnum","Administrator","isAdmin","rpKey","this","Employee","AccountOwner","Guest","SupplierContact","freeze","attrs","staticClass","_c","staticRenderFns","class","logoSrc","rawName","_vm","$vuetify","breakpoint","overlay","toggleOverlay","on","$event","beforeEnter","onRouteClick","render","_self","facebookLogoSrc","goToFacebook","instagramLogoSrc","goToInstagram","facebookLink","instagramLink","methods","component","props","routes","components","SocialMediaLinks","hamburgerOpen","query","mixins","computed","computedList","watch","immediate","handler","getFilteredName","path","el","enter","Velocity","opacity","height","right","complete","scopedSlots","style","stopPropagation","_u","showFooter","model","dialogVisible","expression","domProps","indexOf","yes","dialogMessage","ok","metaInfo","titleTemplate","Menu","Footer","MessageDialog","home","isMenu","account","dashboard","requiresAuth","requiresRoleCheck","Vue","use","Vuex","authorizedModule","namespaced","state","samples","userId","getters","mutations","setSamples","setUserId","id","setAdmin","actions","instance","axios","headers","baseURL","process","defaults","roadtripModule","isLoading","setLoading","getRoadtripStatistics","roadtripId","api","response","catch","getRoadtripStatisticsByTimeFrame","post","addRoadtrip","commit","dispatch","imageRequest","FormData","append","productId","productPhotos","forEach","photo","gpx_file","gpxRequest","addRoadtripPhotos","root","addGPXToRoadtrip","updateRoadtrip","newPhotos","gpx_file_changes","updateGPXFile","getUpcomingRoadtrips","accountId","getUpcomingRoadtripInformation","getPassedRoadtrips","getPassedRoadtrip","getRoadtripId","uniqueName","getTripDayStatistics","scanQR","orderId","getUnauthorizedScanQRInfo","updateCheckInStatus","isPresent","productModule","getAdminProduct","GetProductsByMonthAndYear","payload","month","year","getPublicProductByNameWhenLoggedIn","getPublicProductByName","roadtripName","getNextRoadtripDate","adjustProductStatus","accountModule","personInfo","foodRestrictions","accountAddress","setAccountPersonInfo","info","setAccountAddress","address","addUpdateClickCounter","updateAccountClickCounter","registerAccount","isEmailAvailable","email","getFirstNameFromActivationString","activationString","getEmailAddressFromAccountOwner","activateAccount","requestAccountDeletionLink","rootState","blockAccount","unblockAccount","removeAccount","getAccountOwnerBasePersoninfo","getAddressFromAccountowner","getCoRegisteredPersonsFromAccount","getAccountsByTimeFrame","getAccountStatisticsByTimeFrame","updatePersonInfo","updateAddressFromAccountowner","deletePerson","personId","delete","addCoregisteredPersons","confirmAccountDeletionRequest","deletionString","getPasswordChangeLink","changePassword","changePasswordDashBoard","reset","isAccountOwnerValid","isPrimaryUser","revokeToken","vehicleModule","getVehiclesByAccountId","getVehicle","vehicleId","getLicenseplateInformation","licensePlate","getVehicleStatisticsByTimeFrame","addVehicle","updateVehicle","deleteVehicle","supplierModule","addSupplier","updateSupplier","getSupplierFromAccount","expenseModule","getFinancialStatisticsByTimeFrame","galleryModule","likePhoto","getRoadtripGalleryLoggedOut","GetRoadtripGalleryLoggedIn","getGalleries","getGalleriesFromMake","makeId","reviewModule","canPlaceReview","placeReview","updateReview","getAllReviewsFromRoadtrip","removeReview","reviewId","newsletterModule","subscribeNonExistingAccountToNewsletter","unsubscribeExistingAccountFromNewsletter","subscribeExistingAccountToNewsletter","accountIsSubscribed","storeModule","placeOrderWithExistingAccount","placeOrderWithNewAccount","getOrdersInformation","checkPaymentStatusByOrderId","validateVoucher","menuHelper","fuelTypes","mileageTypes","billingTypes","vehicleMakes","vehicleTypes","supplierTypes","suppliers","VATRates","itineraryTypes","roadtripLocationTypes","roadtripLabels","productCategories","productStatuses","countries","accountOrigins","setFoodRestrictions","setFuelTypes","setMileageTypes","setBillingTypes","setVehicleMakes","setVehicleTypes","setSupplierTypes","setSuppliers","setVATRates","setItineraryTypes","setRoadtripLocationTypes","setRoadtripLabels","setProductCategories","setProductStatuses","setCountries","setAccountOrigins","getVehicleOptions","getFoodRestrictions","getFuelTypes","getMileageTypes","getBillingTypes","getVehicleMakes","getVehicleTypes","getSupplierTypes","getVATRates","getItineraryTypes","getRoadtripLocationTypes","getRoadtripLabels","getProductCategories","getProductStatuses","getCountries","getAccountOrigins","getSuppliers","dialogModule","isDialogVisible","isActionDialogVisible","actionMessage","isPictureDialogVisible","imgSrc","showDialog","hideDialog","showActionDialog","hideActionDialog","showPictureDialog","hidePictureDialog","setPictureDialogVisibility","val","userService","login","logout","handleResponse","password","requestOptions","method","body","fetch","userCache","text","status","location","reload","loggedIn","redirectPath","router","accessToken","setRole","loginRequest","loggingIn","loginSuccess","loginFailure","success","clear","alert","Store","isPilot","selectedYear","Date","getFullYear","setFooterVisibility","getAccountInformation","emailTrack","url","dialog","kalender","store","admin","requiresPrimaryUser","galerijenreviews","overons","misc","tripdaymanager","VueRouter","base","beforeEach","to","from","next","view","querySelector","scrollIntoView","behavior","block","inline","currentRoute","find","x","app","$store","finally","vuetify","Vuetify","icons","iconfont","theme","themes","dark","primary","secondary","accent","options","customProperties","TiptapVuetifyPlugin","iconsGroup","setup","axiosInstance","interceptors","config","interceptor","originalConfig","eject","_retry","Token","VueMeta","setupInterceptors","$API","VueAxios","devtools","productionTip","require","h","App","$mount","goToHome","goto","goToLoginOnly","goToLogin","gotoAndRedirect","goToChangePassword","goToMyDashboard","goToAccount","gotoDeleteAccount","goToUpComingTrip","trip","date","title","getTitleFormat","goToUpComingTripWijzigen","goToAllPastTrips","goToPastTrip","goToNewRoadtrip","goToRoadtrip","goToRoadtripWijzigen","goToNewInvoice","goToRoadtripNewInvoice","goToFinances","goToAccounts","goToAccountId","goToCar","carId","goToCars","goToSuppliers","goToNewSupplier","goToSupplierId","goToGalleryAndReviews","goToGallery","toLowerCase","goToGalleryTrip","make","goToMainCalendar","goToCalendar","goToRoadtripAanmelden","goToRoadtripAanmeldenGuest","goToRoadtripAanmeldenNewAccount","goToTripStatistics","goToCheckinPage","goToAboutUs","$router","redirect","replace","decimalSeparator","account_age_limit","getToday","now","getTimezoneOffset","toISOString","substr","getCurrentYear","getCurrentQuarter","Math","floor","getMonth","getCurrentMonth","formatDate","day","split","formatDateWithoutTime","getDateOnly","getYearOnly","getMonthOnly","getTimeOnly","minBirthdate","maxBirthdate","ageLimit","parseDate","padStart","formatDayMonth","toLocaleString","formatDayMonthYear","addDays","days","newDate","setDate","getDate","getCurrency","amount","currency","getLocalNumericDisplay","input","defaultEmpty","toString","localParseFloat","num","convertToNullableFloat","number","parseFloat","isNaN","getPersonInitials","firstname","lastname","names","charAt"],"mappings":"aACE,SAASA,EAAqBC,GAQ7B,IAPA,IAMIC,EAAUC,EANVC,EAAWH,EAAK,GAChBI,EAAcJ,EAAK,GACnBK,EAAiBL,EAAK,GAIHM,EAAI,EAAGC,EAAW,GACpCD,EAAIH,EAASK,OAAQF,IACzBJ,EAAUC,EAASG,GAChBG,OAAOC,UAAUC,eAAeC,KAAKC,EAAiBX,IAAYW,EAAgBX,IACpFK,EAASO,KAAKD,EAAgBX,GAAS,IAExCW,EAAgBX,GAAW,EAE5B,IAAID,KAAYG,EACZK,OAAOC,UAAUC,eAAeC,KAAKR,EAAaH,KACpDc,EAAQd,GAAYG,EAAYH,IAG/Be,GAAqBA,EAAoBhB,GAE5C,MAAMO,EAASC,OACdD,EAASU,OAATV,GAOD,OAHAW,EAAgBJ,KAAKK,MAAMD,EAAiBb,GAAkB,IAGvDe,IAER,SAASA,IAER,IADA,IAAIC,EACIf,EAAI,EAAGA,EAAIY,EAAgBV,OAAQF,IAAK,CAG/C,IAFA,IAAIgB,EAAiBJ,EAAgBZ,GACjCiB,GAAY,EACRC,EAAI,EAAGA,EAAIF,EAAed,OAAQgB,IAAK,CAC9C,IAAIC,EAAQH,EAAeE,GACG,IAA3BX,EAAgBY,KAAcF,GAAY,GAE3CA,IACFL,EAAgBQ,OAAOpB,IAAK,GAC5Be,EAASM,EAAoBA,EAAoBC,EAAIN,EAAe,KAItE,OAAOD,EAIR,IAAIQ,EAAmB,GAGnBC,EAAqB,CACxB,IAAO,GAMJjB,EAAkB,CACrB,IAAO,GAGJK,EAAkB,GAGtB,SAASa,EAAe7B,GACvB,OAAOyB,EAAoBK,EAAI,OAAS,GAAG9B,IAAUA,GAAW,IAAM,CAAC,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,YAAYA,GAAW,MAI58C,SAASyB,EAAoB1B,GAG5B,GAAG4B,EAAiB5B,GACnB,OAAO4B,EAAiB5B,GAAUgC,QAGnC,IAAIC,EAASL,EAAiB5B,GAAY,CACzCK,EAAGL,EACHkC,GAAG,EACHF,QAAS,IAUV,OANAlB,EAAQd,GAAUW,KAAKsB,EAAOD,QAASC,EAAQA,EAAOD,QAASN,GAG/DO,EAAOC,GAAI,EAGJD,EAAOD,QAKfN,EAAoBS,EAAI,SAAuBlC,GAC9C,IAAImC,EAAW,GAIXC,EAAY,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,GACpwBR,EAAmB5B,GAAUmC,EAASvB,KAAKgB,EAAmB5B,IACzB,IAAhC4B,EAAmB5B,IAAkBoC,EAAUpC,IACtDmC,EAASvB,KAAKgB,EAAmB5B,GAAW,IAAIqC,SAAQ,SAASC,EAASC,GAIzE,IAHA,IAAIC,EAAO,QAAU,GAAGxC,IAAUA,GAAW,IAAM,CAAC,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,YAAYA,GAAW,OACp7CyC,EAAWhB,EAAoBK,EAAIU,EACnCE,EAAmBC,SAASC,qBAAqB,QAC7CxC,EAAI,EAAGA,EAAIsC,EAAiBpC,OAAQF,IAAK,CAChD,IAAIyC,EAAMH,EAAiBtC,GACvB0C,EAAWD,EAAIE,aAAa,cAAgBF,EAAIE,aAAa,QACjE,GAAe,eAAZF,EAAIG,MAAyBF,IAAaN,GAAQM,IAAaL,GAAW,OAAOH,IAErF,IAAIW,EAAoBN,SAASC,qBAAqB,SACtD,IAAQxC,EAAI,EAAGA,EAAI6C,EAAkB3C,OAAQF,IAAK,CAC7CyC,EAAMI,EAAkB7C,GACxB0C,EAAWD,EAAIE,aAAa,aAChC,GAAGD,IAAaN,GAAQM,IAAaL,EAAU,OAAOH,IAEvD,IAAIY,EAAUP,SAASQ,cAAc,QACrCD,EAAQF,IAAM,aACdE,EAAQE,KAAO,WACfF,EAAQG,OAASf,EACjBY,EAAQI,QAAU,SAASC,GAC1B,IAAIC,EAAUD,GAASA,EAAME,QAAUF,EAAME,OAAOC,KAAOjB,EACvDkB,EAAM,IAAIC,MAAM,qBAAuB5D,EAAU,cAAgBwD,EAAU,KAC/EG,EAAIE,KAAO,wBACXF,EAAIH,QAAUA,SACP5B,EAAmB5B,GAC1BkD,EAAQY,WAAWC,YAAYb,GAC/BX,EAAOoB,IAERT,EAAQV,KAAOC,EAEf,IAAIuB,EAAOrB,SAASC,qBAAqB,QAAQ,GACjDoB,EAAKC,YAAYf,MACfgB,MAAK,WACPtC,EAAmB5B,GAAW,MAMhC,IAAImE,EAAqBxD,EAAgBX,GACzC,GAA0B,IAAvBmE,EAGF,GAAGA,EACFhC,EAASvB,KAAKuD,EAAmB,QAC3B,CAEN,IAAIC,EAAU,IAAI/B,SAAQ,SAASC,EAASC,GAC3C4B,EAAqBxD,EAAgBX,GAAW,CAACsC,EAASC,MAE3DJ,EAASvB,KAAKuD,EAAmB,GAAKC,GAGtC,IACIC,EADAC,EAAS3B,SAASQ,cAAc,UAGpCmB,EAAOC,QAAU,QACjBD,EAAOE,QAAU,IACb/C,EAAoBgD,IACvBH,EAAOI,aAAa,QAASjD,EAAoBgD,IAElDH,EAAOZ,IAAM7B,EAAe7B,GAG5B,IAAI2E,EAAQ,IAAIf,MAChBS,EAAmB,SAAUd,GAE5Be,EAAOhB,QAAUgB,EAAOjB,OAAS,KACjCuB,aAAaJ,GACb,IAAIK,EAAQlE,EAAgBX,GAC5B,GAAa,IAAV6E,EAAa,CACf,GAAGA,EAAO,CACT,IAAIC,EAAYvB,IAAyB,SAAfA,EAAMH,KAAkB,UAAYG,EAAMH,MAChE2B,EAAUxB,GAASA,EAAME,QAAUF,EAAME,OAAOC,IACpDiB,EAAMK,QAAU,iBAAmBhF,EAAU,cAAgB8E,EAAY,KAAOC,EAAU,IAC1FJ,EAAMM,KAAO,iBACbN,EAAMvB,KAAO0B,EACbH,EAAMnB,QAAUuB,EAChBF,EAAM,GAAGF,GAEVhE,EAAgBX,QAAWkF,IAG7B,IAAIV,EAAUW,YAAW,WACxBd,EAAiB,CAAEjB,KAAM,UAAWK,OAAQa,MAC1C,MACHA,EAAOhB,QAAUgB,EAAOjB,OAASgB,EACjC1B,SAASqB,KAAKC,YAAYK,GAG5B,OAAOjC,QAAQ+C,IAAIjD,IAIpBV,EAAoB4D,EAAIxE,EAGxBY,EAAoB6D,EAAI3D,EAGxBF,EAAoB8D,EAAI,SAASxD,EAASkD,EAAMO,GAC3C/D,EAAoBgE,EAAE1D,EAASkD,IAClC1E,OAAOmF,eAAe3D,EAASkD,EAAM,CAAEU,YAAY,EAAMC,IAAKJ,KAKhE/D,EAAoBoE,EAAI,SAAS9D,GACX,qBAAX+D,QAA0BA,OAAOC,aAC1CxF,OAAOmF,eAAe3D,EAAS+D,OAAOC,YAAa,CAAEC,MAAO,WAE7DzF,OAAOmF,eAAe3D,EAAS,aAAc,CAAEiE,OAAO,KAQvDvE,EAAoBwE,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQvE,EAAoBuE,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,kBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAK7F,OAAO8F,OAAO,MAGvB,GAFA5E,EAAoBoE,EAAEO,GACtB7F,OAAOmF,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOvE,EAAoB8D,EAAEa,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIR3E,EAAoB+E,EAAI,SAASxE,GAChC,IAAIwD,EAASxD,GAAUA,EAAOmE,WAC7B,WAAwB,OAAOnE,EAAO,YACtC,WAA8B,OAAOA,GAEtC,OADAP,EAAoB8D,EAAEC,EAAQ,IAAKA,GAC5BA,GAIR/D,EAAoBgE,EAAI,SAASgB,EAAQC,GAAY,OAAOnG,OAAOC,UAAUC,eAAeC,KAAK+F,EAAQC,IAGzGjF,EAAoBK,EAAI,IAGxBL,EAAoBkF,GAAK,SAAShD,GAA2B,MAApBiD,QAAQjC,MAAMhB,GAAYA,GAEnE,IAAIkD,EAAaC,OAAO,gBAAkBA,OAAO,iBAAmB,GAChEC,EAAmBF,EAAWjG,KAAK2F,KAAKM,GAC5CA,EAAWjG,KAAOf,EAClBgH,EAAaA,EAAWG,QACxB,IAAI,IAAI5G,EAAI,EAAGA,EAAIyG,EAAWvG,OAAQF,IAAKP,EAAqBgH,EAAWzG,IAC3E,IAAIU,EAAsBiG,EAI1B/F,EAAgBJ,KAAK,CAAC,EAAE,kBAEjBM,K,gHC1QTc,EAAOD,QAAU,IAA0B,0C,oCCA3C,gBAEA,MAAMkF,EACFC,uBACI,MAAMC,EAAOC,KAAKC,MAAMC,aAAaC,QAAQ,SAC7C,OAAW,OAAJJ,QAAI,IAAJA,OAAI,EAAJA,EAAMK,aAEjBC,sBACI,MAAMN,EAAOC,KAAKC,MAAMC,aAAaC,QAAQ,SAC7C,OAAW,OAAJJ,QAAI,IAAJA,OAAI,EAAJA,EAAMO,MAEjBC,uBAAuBD,GACnB,IAAIP,EAAOC,KAAKC,MAAMC,aAAaC,QAAQ,SAC3CJ,EAAKO,MAAQA,EACbJ,aAAaM,QAAQ,OAAQR,KAAKS,UAAUV,IAEhDW,UACI,OAAOV,KAAKC,MAAMC,aAAaC,QAAQ,SAE3CQ,QAAQZ,GACJG,aAAaM,QAAQ,OAAQR,KAAKS,UAAUV,IAEhDa,aACIV,aAAaW,WAAW,QAE5BC,SAASC,GAEL,OAAOA,GAAQC,OAAUC,cAAgB,+DAAiE,GAE9GC,UAEI,MAAMnB,EAAOC,KAAKC,MAAMC,aAAaC,QAAQ,SAC7C,OAAW,OAAJJ,QAAI,IAAJA,OAAI,EAAJA,EAAMoB,QAASC,KAAKN,SAASE,OAAUC,gBAKvC,WAAIpB,G,oCCrCnB,kCAAO,MAAMmB,EAAY,CACrBC,cAAe,gBACfI,SAAU,WACVC,aAAc,eACdC,MAAO,QACPC,gBAAiB,mBAErBrI,OAAOsI,OAAOT,I,kCCPd,W,2GCAiHU,EAAM,W,IAAC,EAAK,KAAK,aAAC,OAAM,QAAS,CAACC,WAAW,SAAC,WAAc,KAACD,MAAM,CAAC,GAAK,QAAM,CAACE,EAAG,QAAyBD,YAAY,eAAoDD,MAAM,CAAC,SAAkB,CAACE,EAAG,OAAO,YAACF,YAAM,oD,MAAC,CAAyD,kBACjY,WACGG,OAEJ,OAAe,EAAEA,gBAAe,8B,+JCJwH,W,IAAI,EAAM,K,EAAI,QAAS,G,OAAE,SAAE,YAAK,gCAAuBF,UAAY,CAAiBG,MAAM,CAAE,SAAgD,QAAoC,Y,CAAQ,SAAY,CAAC,S,YAA4BC,iB,MAAa,CAAM,4CAAG,eAAC,c,MAA0B,CAA4B,6BAAC,cAAIH,IAAG,M,GAA+C/D,CAAYmE,MAAQ,SAAQ,GAACpD,OAAQqD,EAAIC,aAASC,SAAwDP,EAAG,QAAU,EAAEA,OAAY,CAACD,WAAW,CAAC,CAAgBG,KAAM,OAAE,iBAAgD,kBAAoBM,WAAS,GAAO,yCAAK,UAAQ,WAAe,C,YAASH,gB,MAAmB,CAAC,4CAAI,eAAmB,GAAR,EAAO,SAAgCH,IAAQ,eAAmB,GAAU,8BAAiDH,OAAW,EAAC,OAAM,CAACD,YAAM,kB,MAAM,CAAa,eAAM,UAAI,8BAAiBC,SAAW,CAAiBG,YAAM,O,MAAE,CAAmC,cAAG,IAAC,Q,EAA0B,SAAWO,C,YAAe,gBAAC,OAAIT,qBAAsB,EAAG,SAA6CE,IAAQ,eAAmB,GAAU,6BAA4C,uBAAU,aAAC,YAAC,eAACQ,MAAG,CAAC,eAAQ,EAASC,Q,eAA2B,GAAL,WAAM,OAAIX,UAAUA,GAAoCF,IAAO,MAAK,YAAgB,gB,CAAkC,QAAO,U,YAA2B,c,MAAM,CAAO,sB,CAAK,qBAAmBc,C,MAAY,CAAiB,sBAAGP,IAAQA,KAAuC,KAAS,G,GAAkBN,CAAkCG,eAAM,c,MAAE,EAAUG,Q,EAA6CP,GAAK,EAAC,4B,OAAC,QAAY,CAAM,IAAC,EAACY,YAAG,sB,MAAC,C,OAAgCL,EAAIQ,qBAAsB,MAAC,QAAC,OAAIR,aAAcA,GAC90D,IACGJ,eAAoB,GAEfa,OAAQb,eAAe,W,8GCJ5Ba,EAAS,WAAkB,IAAIT,EAAIb,KAAKQ,EAAGK,EAAIU,MAAMf,GAAG,OAAOA,EAAG,MAAM,CAACA,EAAG,MAAM,CAACD,YAAY,UAAUD,MAAM,CAAC,IAAMO,EAAIW,gBAAgB,IAAM,YAAYN,GAAG,CAAC,MAAQL,EAAIY,gBAAgBjB,EAAG,MAAM,CAACD,YAAY,aAAaD,MAAM,CAAC,IAAMO,EAAIa,iBAAiB,IAAM,aAAaR,GAAG,CAAC,MAAQL,EAAIc,oBAEpSlB,EAAkB,GCMP,GACfhE,wBAEAnF,WACAkK,0BACAE,2BACAE,oDACAC,yDAEAC,SACAL,eAEAnD,yCAEAqD,gBAEArD,4CCxByW,I,wBCQrWyD,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,MAIa,EAAAA,E,QC6BA,GACftF,YACAuF,OACAC,cAEAC,YACAC,oBAEA7K,WACAqJ,kBACAyB,iBACApB,WACAqB,YAEAC,gBACAC,UACAC,wBACA,WACA,uCACA,oEAIAC,OACAzB,SACA0B,aACAC,UACA,aAEAxI,mDAIAA,yDAKA2H,SACAc,mBAGA,2DAEAvB,gBAEA,qCACA,MAEA,mBAAAwB,SAGA,cAEA,qBAGA,iDACAC,iBAEA7B,gBAEA,2BACA,gCAGAG,wBACA0B,kBACAA,iBACAA,oBAEAC,oBACA,yBACApG,uBACAqG,IACAF,EACA,CAAAG,UAAAC,UAAAC,SACA,CAAAC,eAEA,MC/H8U,ICQ1U,G,UAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,OAIa,I,0DCnBiG,W,IAAI,OAAY,aAAC,OAAM,aAAS,UAAC7C,OAAqCD,KAAM,GAAC,QAAS,KAAU,WAAE,YAAK,yBAAeC,OAA4BC,KAAQ,GAAED,UAA6HD,GAAK,OAAC,C,YAAU,eAAG,UAAC+C,YAAYxC,oB,CAAS/C,EAAG,MAAC,MAAW,gE,MAAI,C,OAAWoD,I,YAAcV,EAAG,GAAIK,E,IAAQyC,Y,GAAkBhD,UAAM,G,UAAkG,aAACY,MAAG,Q,MAAC,C,OAAgCqC,SAAkB,8EAAG,GAAI,CAAoC,kBAAS,EAAM,qBAAqF,GAAS,qCAAIF,QAAgBG,a,CAAK1F,EAAG,GAAC,2BAAW,sB,MAAI,C,OAAWoD,I,YAAcV,EAAG,GAAIK,E,IAAQyC,Y,GAAkBhD,UAAM,G,UAA2F,aAACY,MAAG,Q,MAAC,C,OAAgCqC,SAAkB,uEAAG,GAAI,CAAiC,kBAAS,EAAM,qBAA8F,qCAA+C,qBAACrC,CAAE,EAAC,iD,MAAC,EAAQ,M,MAAiBC,CAAyB,6CAAG,GAAEN,CAAmDN,MAAW,SAAC,GAASM,EAAO,qBAIn4C,GAASS,kCAAuB,Y,2JCiDjB,GACf7E,kBACA6F,gBACAJ,YACAC,oBAEAI,aACA,gBACAkB,8BAGAnM,WACAgM,mCCjEgV,ICQ5U,G,UAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,OAIa,I,kCCnB6J,W,IAAO,OAAE,EAAK,QAAU,G,OAAO,EAAC,O,YAAC,kB,CAAgB,SAAQ,C,YAAmB,cAAO,WAACI,MAAM,CAAClG,KAAOqD,S,GAA4CA,OAAI8C,C,MAAkB,CAACC,WAAW,GAAe,cAAI,YAAY,OAAkEC,OAAU,QAAW,cAA0B,qBAAMrD,EAAG,cAAgB,GAAuBA,WAAG,kB,CAA4B,UAAQ,UAAe,CAAC,S,YAAQ+C,wB,SAAkB,CAAoC,UAAC,2BAA0B,SAAgBO,C,YAAwFP,Q,GAAkB,QAAWQ,EAAG,OAAM,C,GAAiB,CAAC,kBAC30B,OAD+0BlD,EAAO,kBACt1B,4BAGD,MAAe,SAAEJ,G,8KCuBF,GACfhE,qBAEAnF,cAGAiL,aACA,gBACAoB,0CACAK,qCAGAlC,SACAmC,KAEA,2CC1CsW,ICOlW,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,I,QCSA,GACfxH,YACAyH,UACAC,gCAEAjC,YACAkC,OACAC,SACAC,iBAGAhN,OACA,WCvC8T,ICQ1T,I,UAAY,eACd,EACA,EACAmJ,GACA,EACA,KACA,KACA,OAIa,M,kCCnBR,MAAM8D,GAAO,CAChB,CACI1B,KAAM,IACNpG,KAAM,OACN+H,QAAQ,EACRzC,UAAW,IACP,kDCNC0C,GAAU,CACnB,CACI5B,KAAM,0BACNpG,KAAM,QACNsF,UAAW,IAAM,iDAErB,CACIc,KAAM,gCACNpG,KAAM,cACNsF,UAAW,IAAM,kIAErB,CACIc,KAAM,gDACNpG,KAAM,qBACNsF,UAAW,IAAM,iDAGrB,CACIc,KAAM,wCACNpG,KAAM,sBACNsF,UAAW,IAAM,iDAErB,CACIc,KAAM,wCACNpG,KAAM,sBACNsF,UAAW,IAAM,kDCzBZ2C,GAAY,CACrB,CACI7B,KAAM,aACNpG,KAAM,mBACN+H,QAAQ,EACRG,cAAc,EACdC,mBAAmB,EACnB7C,UAAW,IACP,wJAER,CACIc,KAAM,qBACNpG,KAAM,UACNkI,cAAc,EACd5C,UAAW,IAAM,kIAErB,CACIc,KAAM,iCACNpG,KAAM,sBACNkI,cAAc,EACd5C,UAAW,IAAM,iDAErB,CACIc,KAAO,6BACPpG,KAAO,sBACPkI,cAAc,EACd5C,UAAW,IACP,4GAER,CACIc,KAAO,sCACPpG,KAAO,+BACPkI,cAAc,EACd5C,UAAW,IACP,kIAER,CACIc,KAAO,uBACPpG,KAAO,sBACPkI,cAAc,EACd5C,UAAW,IACP,iDAER,CACIc,KAAO,6BACPpG,KAAO,qBACPkI,cAAc,EACd5C,UAAW,IACP,sFAER,CACIc,KAAO,+BACPpG,KAAO,WACPkI,cAAc,EACd5C,UAAW,IACP,mICpDZ8C,aAAIC,IAAIC,QAER,MAAMC,GAAmB,CACrBC,YAAY,EACZC,MACA,CACIC,QAAS,GACTC,OAAQ,GACRtF,SAAS,GAEbuF,QACA,GAGAC,UACA,CACIC,WAAWL,EAAO5N,GAEd4N,EAAMC,QAAU7N,GAEpBkO,UAAUN,EAAOO,GAEbP,EAAME,OAASK,GAEnBC,SAASR,EAAOpF,GAEZoF,EAAMpF,QAAUA,IAGxB6F,QACA,IAKWX,U,wBCnCf,MAAMY,GAAWC,KAAMhI,OAAO,CAC5BiI,QAAS,CACPC,QAAUC,8BACV,eAAgB,sBAIpBJ,GAASK,SAASF,QAAUC,8BACbJ,UCNff,aAAIC,IAAIC,QAER,MAAMmB,GAAiB,CACnBjB,YAAY,EACZC,MACA,CACIiB,WAAW,GAEfd,QACA,GAGAC,UACA,CACIc,WAAWlB,EAAOiB,GAEdjB,EAAMiB,UAAYA,IAG1BR,QACA,CACIU,yBAA0BC,GAEtB,OAAO,IAAIzM,QAAQ,CAACC,EAASC,KACzBwM,GAAInJ,IAAK,oDAAmDkJ,GAC3D5K,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACHpC,EAAOoC,EAAMqK,SAASlP,WAIlCoP,oCAAqC1L,GAEjC,OAAO,IAAInB,QAAQ,CAACC,EAASC,KACzBwM,GAAII,KAAM,6DAA6D3L,GACtEU,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACHpC,EAAOoC,EAAMqK,eAIzBI,aAAY,OAACC,EAAM,SAAEC,GAAW9L,GAE5B,OAAO,IAAInB,QAAQ,CAACC,EAASC,KACzB8M,EAAO,cAAc,GACrBN,GAAII,KAAM,wBAAwB3L,GACjCU,KAAK8K,IAGF,IAAIO,EAAe,IAAIC,SAUvB,GATAD,EAAaE,OAAO,YAAaT,EAASlP,KAAK4P,WAC/ClM,EAAQmM,cAAcC,QAAQC,IACtBA,GAEAN,EAAaE,OAAQ,gBAAgBI,KAKrB,MAApBrM,EAAQsM,UAAwC,IAApBtM,EAAQsM,SACxC,CACI,IAAIC,EAAa,IAAIP,SACrBO,EAAWN,OAAO,aAAcT,EAASlP,KAAKgP,YAC9CiB,EAAWN,OAAO,OAAQjM,EAAQsM,UAElCzN,QAAQ+C,IAAI,CACRkK,EAAS,oBAAqBC,GAC9BD,EAAS,mBAAoBS,KAC9B7L,KAAK,KACJ5B,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,GAASpC,EAAOoC,EAAMqK,gBAI7B3M,QAAQ+C,IAAI,CACRkK,EAAS,oBAAqBC,KAC/BrL,KAAK,KACJ5B,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,GAASpC,EAAOoC,EAAMqK,aAGpCC,MAAMtK,GAASpC,EAAOoC,EAAMqK,cAGrCgB,mBAAkB,OAACX,GAAS7L,GAExB,OAAO,IAAInB,QAAQ,CAACC,EAASC,KACzBwM,GAAII,KAAM,oCAAoC3L,EAC9C,CACI8K,QAAS,CACL,eAAgB,yBAGvBpK,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACH0K,EAAO,oBAAqB,2CAA4C,CAACY,MAAM,IAC/E1N,EAAOoC,EAAMqK,eAIzBkB,kBAAiB,OAACb,GAAS7L,GAEvB,OAAO,IAAInB,QAAQ,CAACC,EAASC,KACzBwM,GAAII,KAAM,6BAA6B3L,EACvC,CACI8K,QAAS,CACL,eAAgB,yBAGvBpK,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACH0K,EAAO,oBAAqB,6CAA8C,CAACY,MAAM,IACjF1N,EAAOoC,EAAMqK,eAIzBmB,gBAAe,OAACd,EAAM,SAAEC,GAAW9L,GAE/B,OAAO,IAAInB,QAAQ,CAACC,EAASC,KACzB8M,EAAO,cAAc,GACrBN,GAAII,KAAM,yBAAyB3L,GAClCU,KAAK8K,IAGF,IAAIO,EAAe,IAAIC,SACvBD,EAAaE,OAAO,YAAajM,EAAQkM,WACzClM,EAAQ4M,UAAUR,QAAQC,IAClBA,GAEAN,EAAaE,OAAQ,gBAAgBI,KAK7C,IAAIE,EAAa,IAAIP,SACrBO,EAAWN,OAAO,aAAcjM,EAAQsL,YACxCiB,EAAWN,OAAO,OAAQjM,EAAQsM,UAClCC,EAAWN,OAAO,UAAWjM,EAAQ6M,kBAEN,IAA5B7M,EAAQ6M,kBAA8C,MAApB7M,EAAQsM,SAEzCzN,QAAQ+C,IAAI,CACRkK,EAAS,gBAAiBS,GAC1BT,EAAS,oBAAqBC,KAC/BrL,KAAK,KACJ5B,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,GAASpC,EAAOoC,EAAMqK,WAI7B3M,QAAQ+C,IAAI,CACRkK,EAAS,oBAAqBC,KAC/BrL,KAAK,KACJ5B,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,GAASpC,EAAOoC,EAAMqK,aAGpCC,MAAMtK,GAASpC,EAAOoC,EAAMqK,cAGrCsB,eAAc,OAACjB,GAAS7L,GAEpB,OAAO,IAAInB,QAAQ,CAACC,EAASC,KACzBwM,GAAII,KAAM,0BAA0B3L,EACpC,CACI8K,QAAS,CACL,eAAgB,yBAGvBpK,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACH0K,EAAO,oBAAqB,+CAAgD,CAACY,MAAM,IACnF1N,EAAOoC,EAAMqK,eAKzBuB,wBAAyBC,GAErB,OAAO,IAAInO,QAAQ,CAACC,EAASC,KACzBwM,GAAInJ,IAAK,4CAA2C4K,GACnDtM,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACHpC,EAAOoC,EAAMqK,SAASlP,WAIlC2Q,kCAAmCjN,GAE/B,OAAO,IAAInB,QAAQ,CAACC,EAASC,KACzBwM,GAAII,KAAM,2CAA2C3L,GACpDU,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACHpC,EAAOoC,EAAMqK,SAASlP,WAIlC4Q,sBAAuBF,GAEnB,OAAO,IAAInO,QAAQ,CAACC,EAASC,KACzBwM,GAAInJ,IAAK,0CAAyC4K,GACjDtM,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACHpC,EAAOoC,EAAMqK,SAASlP,WAIlC6Q,qBAAsBnN,GAElB,OAAO,IAAInB,QAAQ,CAACC,EAASC,KACzBwM,GAAII,KAAM,8BAA8B3L,GACvCU,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACHpC,EAAOoC,EAAMqK,SAASlP,WAIlC8Q,iBAAkBC,GAEd,OAAO,IAAIxO,QAAQ,CAACC,EAASC,KACzBwM,GAAInJ,IAAK,sCAAqCiL,GAC7C3M,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACHpC,EAAOoC,EAAMqK,SAASlP,WAIlCgR,wBAAyBhC,GAErB,OAAO,IAAIzM,QAAQ,CAACC,EAASC,KACzBwM,GAAInJ,IAAK,6CAA4CkJ,GACpD5K,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACHpC,EAAOoC,EAAMqK,SAASlP,WAIlCiR,UAAWC,GAEP,OAAO,IAAI3O,QAAQ,CAACC,EAASC,KACzBwM,GAAInJ,IAAK,4BAA2BoL,GACnC9M,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACHpC,EAAOoC,EAAMqK,SAASlP,WAIlCmR,6BAA8BD,GAE1B,OAAO,IAAI3O,QAAQ,CAACC,EAASC,KACzBwM,GAAInJ,IAAK,+CAA8CoL,GACtD9M,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACHpC,EAAOoC,EAAMqK,SAASlP,WAIlCoR,uBAAwB1N,GAEpB,OAAO,IAAInB,QAAQ,CAACC,EAASC,KACzBwM,GAAII,KAAM,yCAAwC3L,EAAQwN,mBAAmBxN,EAAQ2N,aACpFjN,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACHpC,EAAOoC,EAAMqK,SAASlP,aAO3B4O,UC9SfrB,aAAIC,IAAIC,QAER,MAAM6D,GAAgB,CAClB3D,YAAY,EACZC,MACA,GAEAG,QACA,GAGAC,UACA,GAGAK,QACA,CACIkD,mBAAoBvC,GAEhB,OAAO,IAAIzM,QAAQ,CAACC,EAASC,KACzBwM,GAAInJ,IAAK,uCAAsCkJ,GAC9C5K,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACHpC,EAAOoC,EAAMqK,SAASlP,WAIlCwR,6BAA8BC,GAE1B,OAAO,IAAIlP,QAAQ,CAACC,EAASC,KACzBwM,GAAInJ,IAAK,4CAA2C2L,EAAQC,cAAcD,EAAQE,kBAAkBF,EAAQf,aAC3GtM,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACHpC,EAAOoC,EAAMqK,SAASlP,WAIlC4R,sCAAuClO,GAEnC,OAAO,IAAInB,QAAQ,CAACC,EAASC,KACzBwM,GAAInJ,IAAK,0DAAyDpC,EAAQqN,wBAAwBrN,EAAQgN,aACzGtM,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACHpC,EAAOoC,EAAMqK,SAASlP,WAIlC6R,0BAA2BC,GAEvB,OAAO,IAAIvP,QAAQ,CAACC,EAASC,KACzBwM,GAAInJ,IAAK,8CAA6CgM,GACrD1N,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACHpC,EAAOoC,EAAMqK,SAASlP,WAIlC+R,wBAEI,OAAO,IAAIxP,QAAQ,CAACC,EAASC,KACzBwM,GAAInJ,IAAK,gCACR1B,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACHpC,EAAOoC,EAAMqK,SAASlP,WAIlCgS,uBAAwBtO,GAEpB,OAAO,IAAInB,QAAQ,CAACC,EAASC,KACzBwM,GAAII,KAAM,+BAA+B3L,GACxCU,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACHpC,EAAOoC,EAAMqK,SAASlP,aAO3BsR,UC3Ff/D,aAAIC,IAAIC,QAER,MAAMwE,GAAgB,CAClBtE,YAAY,EACZC,MACA,CACIsE,WAAY,CACRC,iBAAkB,IAEtBC,eAAgB,IAEpBrE,QACA,GAGAC,UACA,CACIqE,qBAAqBzE,EAAO0E,GAExB1E,EAAMsE,WAAaI,GAEvBC,kBAAkB3E,EAAO4E,GAErB5E,EAAMwE,eAAiBI,GAE3BC,sBAAsB7E,GAElBA,EAAM8E,8BAGdrE,QACA,CACIsE,mBAAoBjP,GAEhB,OAAO,IAAInB,QAAQ,CAACC,EAASC,KACzBwM,GAAII,KAAM,gCAAgC3L,GACzCU,KAAK8K,IACF1M,GAAS0M,EAASlP,QAErBmP,MAAMtK,GAASpC,EAAOoC,OAI/B+N,oBAAqBC,GAEjB,OAAO,IAAItQ,QAAQ,CAACC,EAASC,KACzBwM,GAAInJ,IAAK,yCAAwC+M,GAChDzO,KAAK8K,IACF1M,GAAS0M,EAASlP,QAErBmP,MAAMtK,GAASpC,EAAOoC,OAI/BiO,oCAAqCC,GAEjC,OAAO,IAAIxQ,QAAQ,CAACC,EAASC,KACzBwM,GAAInJ,IAAK,4DAA2DiN,GACnE3O,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,GAASpC,EAAOoC,EAAMqK,SAASlP,UAI9CgT,mCAAoCtC,GAEhC,GAAIA,EAEJ,OAAO,IAAInO,QAAQ,CAACC,EAASC,KACzBwM,GAAII,KAAM,oDAAmDqB,GAC5DtM,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,GAASpC,EAAOoC,EAAMqK,SAASlP,UAI9CiT,mBAAoBF,GAEhB,OAAO,IAAIxQ,QAAQ,CAACC,EAASC,KACzBwM,GAAII,KAAM,4CAA2C0D,GACpD3O,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,GAASpC,EAAOoC,EAAMqK,SAASlP,UAG9CkT,4BAA2B,UAACC,IAExB,OAAO,IAAI5Q,QAAQ,CAACC,EAASC,KACzBwM,GAAInJ,IAAK,gDAA+CqN,EAAUzF,iBAAiBI,QAClF1J,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,GAASpC,EAAOoC,EAAMqK,SAASlP,UAI9CoT,gBAAiB1C,GAEb,OAAO,IAAInO,QAAQ,CAACC,EAASC,KACzBwM,GAAII,KAAM,yCAAwCqB,GACjDtM,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,GAASpC,EAAOoC,EAAMqK,SAASlP,UAG9CqT,kBAAmB3C,GAEf,OAAO,IAAInO,QAAQ,CAACC,EAASC,KACzBwM,GAAII,KAAM,2CAA0CqB,GACnDtM,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,GAASpC,EAAOoC,EAAMqK,SAASlP,UAG9CsT,iBAAkB5C,GAEd,OAAO,IAAInO,QAAQ,CAACC,EAASC,KACzBwM,GAAII,KAAM,0CAAyCqB,GAClDtM,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,GAASpC,EAAOoC,EAAMqK,SAASlP,UAG9CuT,iCAAkC7C,GAE9B,OAAO,IAAInO,QAAQ,CAACC,EAASC,KACzBwM,GAAInJ,IAAK,mDAAkD4K,GAC1DtM,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,GAASpC,EAAOoC,EAAMqK,SAASlP,UAG9CwT,8BAA+B9C,GAE3B,OAAO,IAAInO,QAAQ,CAACC,EAASC,KACzBwM,GAAInJ,IAAK,gDAA+C4K,GACvDtM,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,GAASpC,EAAOoC,EAAMqK,SAASlP,UAG9CyT,qCAAsC/C,GAElC,OAAO,IAAInO,QAAQ,CAACC,EAASC,KACzBwM,GAAInJ,IAAK,sDAAqD4K,GAC7DtM,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,GAASpC,EAAOoC,EAAMqK,SAASlP,UAG9C0T,0BAA2BhQ,GAEvB,OAAO,IAAInB,QAAQ,CAACC,EAASC,KACzBwM,GAAII,KAAM,wCAAwC3L,GACjDU,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,GAASpC,EAAOoC,EAAMqK,SAASlP,UAG9C2T,mCAAoCjQ,GAEhC,OAAO,IAAInB,QAAQ,CAACC,EAASC,KACzBwM,GAAII,KAAM,2DAA2D3L,GACpEU,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,GAASpC,EAAOoC,EAAMqK,SAASlP,UAG9C4T,oBAAqBlQ,GAEjB,OAAO,IAAInB,QAAQ,CAACC,EAASC,KACzBwM,GAAII,KAAM,0BAA0B3L,GACnCU,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,GAASpC,EAAOoC,EAAMqK,SAASlP,UAG9C6T,iCAAkCnQ,GAE9B,OAAO,IAAInB,QAAQ,CAACC,EAASC,KACzBwM,GAAII,KAAM,wCAAwC3L,GACjDU,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,GAASpC,EAAOoC,EAAMqK,SAASlP,UAG9C8T,gBAAiBC,GAEb,OAAO,IAAIxR,QAAQ,CAACC,EAASC,KACzBwM,GAAI+E,OAAQ,qCAAoCD,GAC/C3P,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,GAASpC,EAAOoC,EAAMqK,SAASlP,UAG9CiU,0BAA2BvQ,GAEvB,OAAO,IAAInB,QAAQ,CAACC,EAASC,KACzBwM,GAAII,KAAM,gCAAgC3L,GACzCU,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,GAASpC,EAAOoC,EAAMqK,SAASlP,UAG9CkU,iCAAkCC,GAE9B,OAAO,IAAI5R,QAAQ,CAACC,EAASC,KACzBwM,GAAI+E,OAAQ,yDAAwDG,GACnE/P,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACHpC,EAAOoC,EAAMqK,SAASlP,WAIlCoU,yBAA0BvB,GAEtB,OAAO,IAAItQ,QAAQ,CAACC,EAASC,KACzBwM,GAAII,KAAM,+CAA8CwD,GACvDzO,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,GAASpC,EAAOoC,EAAMqK,SAASlP,UAG9CqU,kBAAmB3Q,GAEf,OAAO,IAAInB,QAAQ,CAACC,EAASC,KACzBwM,GAAII,KAAM,yBAAyB3L,GAClCU,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,GAASpC,EAAOoC,EAAMqK,SAASlP,UAG9CsU,2BAA4B5Q,GAExB,OAAO,IAAInB,QAAQ,CAACC,EAASC,KACzBwM,GAAII,KAAM,kCAAkC3L,GAC3CU,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,GAASpC,EAAOoC,EAAMqK,SAASlP,UAG9CuU,OAAM,OAAChF,IAEHA,EAAO,uBAAwB,CAC3B4C,iBAAkB,KAEtB5C,EAAO,oBAAqB,KAEhCiF,uBAAwB1G,GAEpB,OAAO,IAAIvL,QAAQ,CAACC,EAASC,KACzB8L,KAAMzI,IAAK,8CAA6CgI,GACvD1J,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,GAASpC,EAAOoC,EAAMqK,SAASlP,UAG9CyU,iBAAkB3G,GAEd,OAAO,IAAIvL,QAAQ,CAACC,EAASC,KACzBwM,GAAInJ,IAAK,wCAAuCgI,GAC/C1J,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,GAASpC,EAAOoC,EAAMqK,SAASlP,UAG9C0U,eAAgBhR,GAEZ,OAAO,IAAInB,QAAQ,CAACC,EAASC,KACzB8L,KAAMc,KAAK,8BAA+B3L,GACzCU,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,GAASpC,EAAOoC,EAAMqK,SAASlP,YAOvCiS,UC/Sf1E,aAAIC,IAAIC,QAER,MAAMkH,GAAgB,CAClBhH,YAAY,EACZC,MACA,GAGAI,UACA,GAEAK,QACA,CACIuG,0BAA2BlE,GAEvB,GAAIA,EAEJ,OAAO,IAAInO,QAAQ,CAACC,EAASC,KACzBwM,GAAInJ,IAAK,6CAA4C4K,GACpDtM,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,GAASpC,EAAOoC,EAAMqK,SAASlP,UAG9C6U,cAAeC,GAEX,GAAIA,EAEJ,OAAO,IAAIvS,QAAQ,CAACC,EAASC,KACzBwM,GAAInJ,IAAK,gCAA+BgP,GACvC1Q,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,GAASpC,EAAOoC,EAAMqK,SAASlP,UAG9C+U,8BAA+BC,GAE3B,GAAIA,EAEJ,OAAO,IAAIzS,QAAQ,CAACC,EAASC,KACzBwM,GAAInJ,IAAK,oDAAmDkP,GAC3D5Q,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,GAASpC,EAAOoC,EAAMqK,SAASlP,UAG9CiV,mCAAoCvR,GAEhC,OAAO,IAAInB,QAAQ,CAACC,EAASC,KACzBwM,GAAII,KAAM,2DAA2D3L,GACpEU,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,GAASpC,EAAOoC,EAAMqK,SAASlP,UAG9CkV,cAAexR,GAEX,OAAO,IAAInB,QAAQ,CAACC,EAASC,KACzBwM,GAAII,KAAM,sBAAsB3L,GAC/BU,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,GAASpC,EAAOoC,EAAMqK,SAASlP,UAG9CmV,iBAAkBzR,GAEd,OAAO,IAAInB,QAAQ,CAACC,EAASC,KACzBwM,GAAII,KAAM,yBAAyB3L,GAClCU,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,GAASpC,EAAOoC,EAAMqK,SAASlP,UAG9CoV,iBAAkBN,GAEd,GAAIA,EAEJ,OAAO,IAAIvS,QAAQ,CAACC,EAASC,KACzBwM,GAAI+E,OAAQ,uCAAsCc,GACjD1Q,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,GAASpC,EAAOoC,EAAMqK,SAASlP,YAMvC2U,UC9FfpH,aAAIC,IAAIC,QAER,MAAM4H,GAAiB,CACnB1H,YAAY,EACZC,MACA,GAEAG,QACA,GAGAC,UACA,GAGAK,QACA,CACIiH,eAAgB5R,GAEZ,OAAO,IAAInB,QAAQ,CAACC,EAASC,KACzBwM,GAAII,KAAM,8BAA8B3L,GACvCU,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACHpC,EAAOoC,EAAMqK,SAASlP,WAIlCuV,kBAAmB7R,GAEf,OAAO,IAAInB,QAAQ,CAACC,EAASC,KACzBwM,GAAII,KAAM,gDAAgD3L,GACzDU,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACHpC,EAAOoC,EAAMqK,SAASlP,WAIlCwV,0BAA2B9E,GAEvB,OAAO,IAAInO,QAAQ,CAACC,EAASC,KACzBwM,GAAInJ,IAAK,4DAA2D4K,GACnEtM,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACHpC,EAAOoC,EAAMqK,SAASlP,aAO3BqV,UCxDf9H,aAAIC,IAAIC,QAER,MAAMgI,GAAgB,CAClB9H,YAAY,EACZC,MACA,GAEAG,QACA,GAGAC,UACA,GAGAK,QACA,CACIqH,qCAAsChS,GAElC,OAAO,IAAInB,QAAQ,CAACC,EAASC,KACzBwM,GAAII,KAAM,6DAA6D3L,GACtEU,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACHpC,EAAOoC,EAAMqK,SAASlP,aAO3ByV,UC/BflI,aAAIC,IAAIC,QAER,MAAMkI,GAAgB,CAClBhI,YAAY,EACZC,MACA,GAEAG,QACA,GAGAC,UACA,GAGAK,QACA,CACIuH,aAAclS,GAEV,OAAO,IAAInB,QAAQ,CAACC,EAASC,KACzBwM,GAAII,KAAM,sBAAsB3L,GAC/BU,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACHpC,EAAOoC,EAAMqK,SAASlP,WAIlC6V,+BAAgC7G,GAE5B,OAAO,IAAIzM,QAAQ,CAACC,EAASC,KACzB8L,GAAMzI,IAAK,mDAAkDkJ,GAC5D5K,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACHpC,EAAOoC,EAAMqK,SAASlP,WAIlC8V,8BAA+BpS,GAE3B,OAAO,IAAInB,QAAQ,CAACC,EAASC,KACzBwM,GAAII,KAAM,uCAAuC3L,GAChDU,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACHpC,EAAOoC,EAAMqK,SAASlP,WAIlC+V,iBAEI,OAAO,IAAIxT,QAAQ,CAACC,EAASC,KACzBwM,GAAInJ,IAAK,yBACR1B,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACHpC,EAAOoC,EAAMqK,SAASlP,WAIlCgW,wBAAyBC,GAErB,OAAO,IAAI1T,QAAQ,CAACC,EAASC,KACzBwM,GAAInJ,IAAK,+CAA8CmQ,GACtD7R,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACHpC,EAAOoC,EAAMqK,SAASlP,aAO3B2V,UCjFfpI,aAAIC,IAAIC,QAER,MAAMyI,GAAe,CACjBvI,YAAY,EACZC,MACA,GAGAI,UACA,GAEAK,QACA,CACI8H,kBAAmBzS,GAEf,OAAO,IAAInB,QAAQ,CAACC,EAASC,KACzBwM,GAAII,KAAM,iCAAiC3L,GAC1CU,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,GAASpC,EAAOoC,EAAMqK,SAASlP,UAG9CoW,eAAgB1S,GAEZ,OAAO,IAAInB,QAAQ,CAACC,EAASC,KACzBwM,GAAII,KAAM,8BAA8B3L,GACvCU,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,GAASpC,EAAOoC,EAAMqK,SAASlP,UAG9CqW,gBAAiB3S,GAEb,OAAO,IAAInB,QAAQ,CAACC,EAASC,KACzBwM,GAAII,KAAM,+BAA+B3L,GACxCU,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,GAASpC,EAAOoC,EAAMqK,SAASlP,UAG9CsW,6BAA8BtH,GAE1B,OAAO,IAAIzM,QAAQ,CAACC,EAASC,KACzBwM,GAAII,KAAM,wDAAuDL,GAChE5K,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,GAASpC,EAAOoC,EAAMqK,SAASlP,UAG9CuW,gBAAiB7S,GAEb,OAAO,IAAInB,QAAQ,CAACC,EAASC,KACzBwM,GAAI+E,OAAQ,yCAAwCtQ,EAAQ8S,sBAAsB9S,EAAQgN,aACzFtM,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,GAASpC,EAAOoC,EAAMqK,SAASlP,YAMvCkW,UClEf3I,aAAIC,IAAIC,QAER,MAAMgJ,GAAmB,CACrB9I,YAAY,EACZC,MACA,GAEAG,QACA,GAGAC,UACA,GAGAK,QACA,CACIqI,2CAA4ChT,GAExC,OAAO,IAAInB,QAAQ,CAACC,EAASC,KACzBwM,GAAII,KAAM,sDAAsD3L,GAC/DU,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,GAASpC,EAAOoC,EAAMqK,SAASlP,UAG9C2W,4CAA6CjG,GAEzC,OAAO,IAAInO,QAAQ,CAACC,EAASC,KACzBwM,GAAII,KAAM,kEAAiEqB,GAC1EtM,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACHpC,EAAOoC,EAAMqK,SAASlP,WAIlC4W,wCAAyClG,GAErC,OAAO,IAAInO,QAAQ,CAACC,EAASC,KACzBwM,GAAII,KAAM,8DAA6DqB,GACtEtM,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACHpC,EAAOoC,EAAMqK,SAASlP,WAIlC6W,uBAAwBnG,GAEpB,OAAO,IAAInO,QAAQ,CAACC,EAASC,KACzBwM,GAAII,KAAM,6CAA4CqB,GACrDtM,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACHpC,EAAOoC,EAAMqK,SAASlP,aAO3ByW,UClEflJ,aAAIC,IAAIC,QAER,MAAMqJ,GAAc,CAChBnJ,YAAY,EACZC,MACA,GAGAG,QACA,GAGAC,UACA,GAEAK,QACA,CACI0I,iCAAkCrT,GAE9B,OAAO,IAAInB,QAAQ,CAACC,EAASC,KACzBwM,GAAII,KAAM,uCAAuC3L,GAChDU,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,GAASpC,EAAOoC,EAAMqK,SAASlP,UAG9CgX,4BAA6BtT,GAEzB,OAAO,IAAInB,QAAQ,CAACC,EAASC,KACzBwM,GAAII,KAAM,kCAAkC3L,GAC3CU,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,GAASpC,EAAOoC,EAAMqK,SAASlP,UAG9CiX,wBAAyBvT,GAErB,OAAO,IAAInB,QAAQ,CAACC,EAASC,KACzBwM,GAAInJ,IAAK,yCAAwCpC,EAAQgN,uBAAuBhN,EAAQkM,aACvFxL,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,GAASpC,EAAOoC,EAAMqK,SAASlP,UAG9CkX,+BAAgChG,GAE5B,OAAO,IAAI3O,QAAQ,CAACC,EAASC,KACzBwM,GAAInJ,IAAK,8CAA6CoL,GACrD9M,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACHpC,EAAOoC,EAAMqK,SAASlP,WAIlCmX,mBAAoBzT,GAEhB,OAAO,IAAInB,QAAQ,CAACC,EAASC,KACzBwM,GAAII,KAAM,2BAA2B3L,GACpCU,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,GAASpC,EAAOoC,EAAMqK,SAASlP,YAOvC8W,UC1EfvJ,aAAIC,IAAIC,QAER,MAAM2J,GAAa,CACfzJ,YAAY,EACZC,MACA,CACIuE,iBAAkB,GAClBkF,UAAW,GACXC,aAAc,GACdC,aAAc,GACdC,aAAc,GACdC,aAAc,GACdC,cAAe,GACfC,UAAW,GACXC,SAAU,GACVC,eAAgB,GAChBC,sBAAuB,GACvBC,eAAgB,GAChBC,kBAAmB,GACnBC,gBAAiB,GACjBC,UAAW,GACXC,eAAgB,IAEpBnK,UACA,CACIoK,oBAAoBxK,EAAO5N,GAEvB4N,EAAMuE,iBAAmBnS,GAE7BqY,aAAazK,EAAO5N,GAEhB4N,EAAMyJ,UAAYrX,GAEtBsY,gBAAgB1K,EAAO5N,GAEnB4N,EAAM0J,aAAetX,GAEzBuY,gBAAgB3K,EAAO5N,GAEnB4N,EAAM2J,aAAevX,GAEzBwY,gBAAgB5K,EAAO5N,GAEnB4N,EAAM4J,aAAexX,GAEzByY,gBAAgB7K,EAAO5N,GAEnB4N,EAAM6J,aAAezX,GAEzB0Y,iBAAiB9K,EAAO5N,GAEpB4N,EAAM8J,cAAgB1X,GAE1B2Y,aAAa/K,EAAO5N,GAEhB4N,EAAM+J,UAAY3X,GAEtB4Y,YAAYhL,EAAO5N,GAEf4N,EAAMgK,SAAW5X,GAErB6Y,kBAAkBjL,EAAO5N,GAErB4N,EAAMiK,eAAiB7X,GAE3B8Y,yBAAyBlL,EAAO5N,GAE5B4N,EAAMkK,sBAAwB9X,GAElC+Y,kBAAkBnL,EAAO5N,GAErB4N,EAAMmK,eAAiB/X,GAE3BgZ,qBAAqBpL,EAAO5N,GAExB4N,EAAMoK,kBAAoBhY,GAE9BiZ,mBAAmBrL,EAAO5N,GAEtB4N,EAAMqK,gBAAkBjY,GAE5BkZ,aAAatL,EAAO5N,GAEhB4N,EAAMsK,UAAYlY,GAEtBmZ,kBAAkBvL,EAAO5N,GAErB4N,EAAMuK,eAAiBnY,IAG/BqO,QACA,CACI+K,mBAAkB,SAAC5J,IACfA,EAAS,mBACTA,EAAS,mBACTA,EAAS,iBAEb6J,qBAAoB,OAAC9J,IAEjB,OAAO,IAAIhN,QAAQ,CAACC,EAASC,KACzBwM,GAAInJ,IAAK,kCACR1B,KAAK8K,IACFK,EAAO,sBAAuBL,EAASlP,MACvCwC,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACHpC,EAAOoC,QAInByU,cAAa,OAAC/J,IAEV,OAAO,IAAIhN,QAAQ,CAACC,EAASC,KACzBwM,GAAInJ,IAAK,2BACR1B,KAAK8K,IACFK,EAAO,eAAgBL,EAASlP,MAChCwC,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACHpC,EAAOoC,QAInB0U,iBAAgB,OAAChK,IAEb,OAAO,IAAIhN,QAAQ,CAACC,EAASC,KACzBwM,GAAInJ,IAAK,8BACR1B,KAAK8K,IACFK,EAAO,kBAAmBL,EAASlP,MACnCwC,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACHpC,EAAOoC,QAInB2U,iBAAgB,OAACjK,IAEb,OAAO,IAAIhN,QAAQ,CAACC,EAASC,KACzBwM,GAAInJ,IAAK,8BACR1B,KAAK8K,IACFK,EAAO,kBAAmBL,EAASlP,MACnCwC,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACHpC,EAAOoC,QAInB4U,iBAAgB,OAAClK,IAEb,OAAO,IAAIhN,QAAQ,CAACC,EAASC,KACzBwM,GAAInJ,IAAK,8BACR1B,KAAK8K,IACFK,EAAO,kBAAmBL,EAASlP,MACnCwC,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACHpC,EAAOoC,QAInB6U,iBAAgB,OAACnK,IAEb,OAAO,IAAIhN,QAAQ,CAACC,EAASC,KACzBwM,GAAInJ,IAAK,8BACR1B,KAAK8K,IACFK,EAAO,kBAAmBL,EAASlP,MACnCwC,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACHpC,EAAOoC,QAInB8U,kBAAiB,OAACpK,IAEd,OAAO,IAAIhN,QAAQ,CAACC,EAASC,KACzBwM,GAAInJ,IAAK,+BACR1B,KAAK8K,IACFK,EAAO,mBAAoBL,EAASlP,MACpCwC,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACHpC,EAAOoC,QAInB+U,aAAY,OAACrK,IAET,OAAO,IAAIhN,QAAQ,CAACC,EAASC,KACzBwM,GAAInJ,IAAK,0BACR1B,KAAK8K,IACFK,EAAO,cAAeL,EAASlP,MAC/BwC,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACHpC,EAAOoC,QAInBgV,mBAAkB,OAACtK,IAEf,OAAO,IAAIhN,QAAQ,CAACC,EAASC,KACzBwM,GAAInJ,IAAK,gCACR1B,KAAK8K,IACFK,EAAO,oBAAqBL,EAASlP,MACrCwC,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACHpC,EAAOoC,QAInBiV,0BAAyB,OAACvK,IAEtB,OAAO,IAAIhN,QAAQ,CAACC,EAASC,KACzBwM,GAAInJ,IAAK,uCACR1B,KAAK8K,IACFK,EAAO,2BAA4BL,EAASlP,MAC5CwC,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACHpC,EAAOoC,QAInBkV,mBAAkB,OAACxK,IAEf,OAAO,IAAIhN,QAAQ,CAACC,EAASC,KACzBwM,GAAInJ,IAAK,gCACR1B,KAAK8K,IACFK,EAAO,oBAAqBL,EAASlP,MACrCwC,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACHpC,EAAOoC,QAInBmV,sBAAqB,OAACzK,IAElB,OAAO,IAAIhN,QAAQ,CAACC,EAASC,KACzBwM,GAAInJ,IAAK,mCACR1B,KAAK8K,IACFK,EAAO,uBAAwBL,EAASlP,MACxCwC,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACHpC,EAAOoC,QAInBoV,oBAAmB,OAAC1K,IAEhB,OAAO,IAAIhN,QAAQ,CAACC,EAASC,KACzBwM,GAAInJ,IAAK,iCACR1B,KAAK8K,IACFK,EAAO,qBAAsBL,EAASlP,MACtCwC,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACHpC,EAAOoC,QAInBqV,cAAa,OAAC3K,IAEV,OAAO,IAAIhN,QAAQ,CAACC,EAASC,KACzBwM,GAAInJ,IAAK,2BACR1B,KAAK8K,IACFK,EAAO,eAAgBL,EAASlP,MAChCwC,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACHpC,EAAOoC,QAInBsV,mBAAkB,OAAC5K,IAEf,OAAO,IAAIhN,QAAQ,CAACC,EAASC,KACzBwM,GAAInJ,IAAK,gCACR1B,KAAK8K,IACFK,EAAO,oBAAqBL,EAASlP,MACrCwC,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACHpC,EAAOoC,QAMnBuV,cAAa,OAAC7K,IAEV,OAAO,IAAIhN,QAAQ,CAACC,EAASC,KACzBwM,GAAInJ,IAAK,2BACR1B,KAAK8K,IACFK,EAAO,eAAgBL,EAASlP,MAChCwC,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,IACHpC,EAAOoC,UAOZuS,UCtTf7J,aAAIC,IAAIC,QAER,MAAM4M,GAAe,CACjB1M,YAAY,EACZC,MACA,CACI0M,iBAAiB,EACjBpV,QAAS,GAETqV,uBAAuB,EACvBC,cAAe,GAEfC,wBAAwB,EACxBC,OAAQ,IAEZ1M,UACA,CACI2M,WAAW/M,EAAO1I,GAEd0I,EAAM0M,iBAAkB,EACxB1M,EAAM1I,QAAUA,GAEpB0V,WAAWhN,GAEPA,EAAM0M,iBAAkB,GAG5BO,iBAAiBjN,EAAO1I,GAEpB0I,EAAM2M,uBAAwB,EAC9B3M,EAAM4M,cAAgBtV,GAE1B4V,iBAAiBlN,GAEbA,EAAM2M,uBAAwB,GAGlCQ,kBAAkBnN,EAAOhK,GAErBgK,EAAM6M,wBAAyB,EAC/B7M,EAAM8M,OAAS9W,GAEnBoX,kBAAkBpN,GAEdA,EAAM6M,wBAAyB,GAEnCQ,2BAA2BrN,EAAOsN,GAE9BtN,EAAM6M,uBAAyBS,IAGvC7M,QACA,IAKWgM,U,aCzDR,MAAMc,GAAc,CACvBC,SACAC,UACAC,mBAGJ,SAASF,GAAMvI,EAAO0I,GAElB,OAAO,IAAIhZ,QAAQ,CAACC,EAASC,KAEzB,MAAMiB,EAAU,CACZ,MAAUmP,EACV,SAAa0I,GAGXC,EAAiB,CACnBC,OAAQ,OACRjN,QAAS,CAAE,eAAgB,oBAC3BkN,KAAMpU,KAAKS,UAAUrE,IAGzB,OAAOiY,MAAO,mDAAuDH,GACpEpX,KAAKkX,IACLlX,KAAKiD,IAEF,GAAIA,EAAKO,MAAO,CAEZ,IAAIgU,EAAY,CACZhU,MAAQP,EAAKO,MACbkG,OAASzG,EAAKyG,OACdpG,aAAeL,EAAKK,cAGpBW,EAAOhB,EAAKgB,KAEZA,GAAQC,QAAUC,gBAElBqT,EAAU,SAAWzU,QAAaiB,SAASC,IAG/ClB,QAAac,QAAQ2T,GAGzB,OADApZ,EAAQ6E,GACDA,IAEV8H,MAAMtK,GAASpC,EAAOoC,MAM/B,SAASwW,KAELlU,QAAae,aAGjB,SAASoT,GAAepM,GACpB,OAAOA,EAAS2M,OACfzX,KAAKyX,IACF,IAAK3M,EAASvC,GAOV,OANwB,MAApBuC,EAAS4M,SAETT,KACAU,SAASC,QAAO,IAGbzZ,QAAQE,OAAOoZ,GAG1B,IAAI7b,EAAO6b,GAAQvU,KAAKC,MAAMsU,GAC9B,OAAO7b,ICtEf,MAAMqH,GAAOC,KAAKC,MAAMC,aAAaC,QAAQ,SACvCmG,GAAQvG,GACR,CAAEyU,OAAQ,CAAEG,UAAU,GAAQ5U,KAAI,GAAEgB,KAAM,IAC1C,CAAEyT,OAAQ,GAAIzU,KAAM,KAAMgB,KAAM,IAEhCgG,GAAU,CACZ+M,OAAM,SAAE5L,EAAQ,OAAED,IAAU,MAACsD,EAAK,SAAE0I,EAAQ,aAAEW,IAC1C3M,EAAO,eAAgB,CAAEsD,UACzBsI,GAAYC,MAAMvI,EAAO0I,GACpBnX,KACGiD,IACIkI,EAAO,eAAgBlI,GAGvB,MAAMmB,GAAU,EAEhB+G,EAAO,4BAA6B/G,EAAS,CAAE2H,MAAM,IACrDgM,GAAOrb,KAAKob,GAAgB,eAEhCrX,IACI0K,EAAO,oBAAqB1K,EAAO,CAAEsL,MAAM,IAC3CZ,EAAO,eAAgB1K,GACvB0K,EAAO,6BAA6B,EAAO,CAAEY,MAAM,IACnDX,EAAS,cAAe3K,EAAO,CAAEsL,MAAM,OAIvDkL,QAAO,OAAE9L,IACLA,EAAO,6BAA6B,EAAO,CAAEY,MAAM,IACnDgL,GAAYE,SACZc,GAAOrb,KAAK,2BACZyO,EAAO,WAEX7H,cAAa,OAAE6H,GAAU6M,GACrB7M,EAAO,eAAgB6M,IAE3BC,SAAQ,OAAE9M,GAAUlH,GAChBkH,EAAO,UAAWlH,KAIpB2F,GAAY,CACdsO,aAAa1O,EAAOiF,GAChBjF,EAAMkO,OAAS,CAAES,WAAW,GAC5B3O,EAAMvG,KAAOwL,GAEjB2J,aAAa5O,EAAOvG,GAChBuG,EAAMkO,OAAS,CAAEG,UAAU,GAC3BrO,EAAMvG,KAAOA,GAEjBoV,aAAa7O,GACTA,EAAMkO,OAAS,GACflO,EAAMvG,KAAO,MAEjBgU,OAAOzN,GACHA,EAAMkO,OAAS,GACflO,EAAMvG,KAAO,MAEjBK,aAAakG,EAAOwO,GAChBxO,EAAMkO,OAAOG,UAAW,EACxBrO,EAAMvG,KAAO,IAAKuG,EAAMvG,KAAM+U,YAAaA,IAE/CC,QAAQzO,EAAOvF,GACXuF,EAAMvF,KAAOA,IAIR8E,GAAU,CACnBQ,YAAY,EACZC,SACAS,WACAL,cC3EEJ,GAAQ,CACVtK,KAAM,KACN4B,QAAS,MAGPmJ,GAAU,CACZqO,SAAQ,OAAEnN,GAAUrK,GAChBqK,EAAO,UAAWrK,IAEtBL,OAAM,OAAE0K,GAAUrK,GACdqK,EAAO,QAASrK,IAEpByX,OAAM,OAAEpN,IACJA,EAAO,WAITvB,GAAY,CACd0O,QAAQ9O,EAAO1I,GACX0I,EAAMtK,KAAO,gBACbsK,EAAM1I,QAAUA,GAEpBL,MAAM+I,EAAO1I,GACT0I,EAAMtK,KAAO,eACbsK,EAAM1I,QAAUA,GAEpByX,MAAM/O,GACFA,EAAMtK,KAAO,KACbsK,EAAM1I,QAAU,OAIX0X,GAAQ,CACjBjP,YAAY,EACZC,MAAK,GACLS,QAAO,GACPL,UAASA,IChBbT,aAAIC,IAAIC,QAEO,WAAIA,OAAKoP,MAAM,CAC1BjP,MACA,CACIkP,SAAS,EACTC,cAAc,IAAIC,MAAOC,cACzB9Q,YAAY,GAEhB4B,QACA,GAEAC,UACA,CACIkP,oBAAoBtP,EAAO1H,GAEvB0H,EAAMzB,WAAajG,IAG3BmI,QACA,CACI8O,uBAAsB,OAAC5N,EAAM,SAAEC,GAAW1B,GAEtC,OAAO,IAAIvL,QAAQ,CAACC,EAASC,KACzB+M,EAAS,8CAA+C1B,GACvD1J,KAAMpE,IACHuP,EAAO,qCAAsCvP,GAE7CwP,EAAS,2CAA4C1B,GACpD1J,KAAMpE,IACHuP,EAAO,kCAAmCvP,GAC1CwC,EAAQxC,OAGfmP,MAAMtK,IACHpC,EAAOoC,QAInB0P,OAAM,SAAC/E,IAEHA,EAAS,wBAGb4N,cAAe1Z,GAEX,OAAO,IAAInB,QAAQ,CAACC,EAASC,KACzBwM,GAAInJ,IAAK,0BAAyBpC,EAAQgN,sBAAsBhN,EAAQ2Z,OACvEjZ,KAAK8K,IACF1M,EAAQ0M,EAASlP,QAEpBmP,MAAMtK,GAASpC,EAAOoC,EAAMqK,SAASlP,WAIlDe,QACA,CACI6N,eAAgBA,GAChB0C,cAAeA,GACf5D,iBAAkBA,GAClBuE,cAAeA,GACf0C,cAAeA,GACfU,eAAgBA,GAChBI,cAAeA,GACfE,cAAeA,GACfO,aAAcA,GACdO,iBAAkBA,GAClBK,YAAaA,GACbM,WAAYA,GACZkG,OAAQjD,GACRuC,SACAzP,cC1FD,MAAMoQ,GAAW,CACpB,CACIhS,KAAO,YACPpG,KAAO,gBAAeqY,GAAM5P,MAAMmP,aAClC7P,QAAQ,EACRI,mBAAmB,EACnB7C,UAAW,IACP,sFAER,CACIc,KAAO,kBACPpG,KAAO,mBACPmI,mBAAmB,EACnB7C,UAAW,IACP,sFAER,CACIc,KAAO,4BACPpG,KAAO,uBACPsF,UAAW,IACP,kIAER,CACIc,KAAO,iCACPpG,KAAO,8BACPsF,UAAW,IACP,wJAER,CACIc,KAAO,0CACPpG,KAAO,uCACPsF,UAAW,IACP,yJCjCCgT,GAAQ,CACjB,CACIlS,KAAM,iCACNpG,KAAM,gBACNuY,qBAAqB,EACrBjT,UAAW,IAAM,wJAErB,CACIc,KAAM,2BACNpG,KAAM,mBACNuY,qBAAqB,EACrBjT,UAAW,IAAM,sFAErB,CACIc,KAAM,oCACNpG,KAAM,2BACNuY,qBAAqB,EACrBjT,UAAW,IAAM,wJAErB,CAEIc,KAAM,4CACNpG,KAAM,4BACNuY,qBAAqB,EACrBjT,UAAW,IAAM,4GAErB,CACIc,KAAM,gDACNpG,KAAM,iBACNuY,qBAAqB,EACrBjT,UAAW,IAAM,4GAErB,CACIc,KAAM,uBACNpG,KAAM,YACNuY,qBAAqB,EACrBjT,UAAW,IAAM,4GAErB,CACIc,KAAM,sBACNpG,KAAM,WACNuY,qBAAqB,EACrBjT,UAAW,IAAM,4GAErB,CACIc,KAAM,iCACNpG,KAAM,kBACNuY,qBAAqB,EACrBjT,UAAW,IAAM,wJAErB,CACIc,KAAM,wBACNpG,KAAM,aACNuY,qBAAqB,EACrBjT,UAAW,IAAM,4GAGrB,CACIc,KAAM,2BACNpG,KAAM,gBACNuY,qBAAqB,EACrBjT,UAAW,IAAM,sFAErB,CACIc,KAAM,qCACNpG,KAAM,qBACNuY,qBAAqB,EACrBjT,UAAW,IAAM,kIAErB,CACIc,KAAM,oCACNpG,KAAM,cACNuY,qBAAqB,EACrBjT,UAAW,IAAM,6GCzEZkT,GAAmB,CAC5B,CACIpS,KAAM,WACNpG,KAAM,qBACN+H,QAAQ,EACRzC,UAAW,IACP,iDAER,CACIc,KAAO,iBACPpG,KAAO,eACPsF,UAAW,IACP,iDAER,CACIc,KAAO,uBACPpG,KAAO,eACPsF,UAAW,IACP,kDClBCmT,GAAU,CACnB,CACIrS,KAAM,YACNpG,KAAM,WACN+H,QAAQ,EACRzC,UAAW,IACP,kDCNCoT,GAAO,CAChB,CACItS,KAAM,OACNpG,KAAM,kBACNsF,UAAW,IAAM,iDAErB,CACIc,KAAM,OACNpG,KAAM,qBACNsF,UAAW,IAAM,iDAErB,CACIc,KAAM,kCACNpG,KAAM,cACNsF,UAAW,IAAM,iDAErB,CACIc,KAAM,+BACNpG,KAAM,yBACNsF,UAAW,IAAM,iDAErB,CACIc,KAAM,6CACNpG,KAAM,2BACNsF,UAAW,IAAM,iDAErB,CACIc,KAAM,4BACNpG,KAAM,WACNsF,UAAW,IAAM,iDAErB,CACIc,KAAM,uBACNpG,KAAM,qBACNsF,UAAW,IAAM,kDClCZqT,GAAiB,CAC1B,CACIvS,KAAM,4BACNpG,KAAM,WACN+H,QAAQ,EACRI,mBAAmB,EACnB7C,UAAW,IACP,sFAER,CACIc,KAAM,kCACNpG,KAAM,sBACN+H,QAAQ,EACRwQ,qBAAqB,EACrBjT,UAAW,IACP,6GCAZ8C,aAAIC,IAAIuQ,SAER,MAAMpT,GAAS,CAEV,CAAEY,KAAM,IAAKd,UAAW,IAAM,kDAGnCE,GAAO7J,QAAQmM,IACftC,GAAO7J,QAAQqM,IACfxC,GAAO7J,QAAQsM,IACfzC,GAAO7J,QAAQyc,IACf5S,GAAO7J,QAAQ2c,IACf9S,GAAO7J,QAAQ6c,IACfhT,GAAO7J,QAAQ8c,IACfjT,GAAO7J,QAAQ+c,IACflT,GAAO7J,QAAQgd,IAEf,MAAM3B,GAAS,IAAI4B,QAAU,CACzB3X,KAAM,UACN4X,KAAMtP,IACN/D,YAGJwR,GAAO8B,WAAW,CAACC,EAAIC,EAAMC,KAEzB,IAAIC,EAAOxb,SAASyb,cAAc,oBAC9BD,GAEAA,EAAKE,eAAe,CAACC,SAAU,OAAQC,MAAO,QAASC,OAAQ,UAGnE,MAAMzC,EAAWzU,aAAaC,QAAQ,QACtC,IAAIkX,EAAehU,GAAOiU,KAAKC,GAAKA,EAAE1Z,MAAQ+Y,EAAG/Y,MAC7CkI,EAAesR,GAAgBA,EAAatR,aAC5CqQ,EAAsBiB,GAAgBA,EAAajB,oBACnDpQ,EAAoBqR,GAAgBA,EAAarR,kBACjD9E,GAAU,EAEd,GAAGyT,EACH,CACI,MAAMnO,EAASxG,KAAKC,MAAM0U,GAAU,WAEhC3O,GAAqBoQ,IAErBvB,GAAO2C,IAAIC,OAAOvP,SAAS,8BAA+B1B,GACzD1J,KAAKpE,IACFwI,EAAUxI,GAAQmH,QAAaqB,UAC/B2T,GAAO2C,IAAIC,OAAOxP,OAAO,4BAA6B/G,GAElDkV,GAAuBlV,GACvB4V,MAGPY,QAAQ,KAEL,GAAItB,IAAwBlV,EAExB,OAAO4V,EAAK,UAKxBjC,GAAO2C,IAAIC,OAAOvP,SAAS,oCAAqC1B,GAC/D1J,KAAKpE,IAEF,GADAmc,GAAO2C,IAAIC,OAAOnR,MAAMT,QAAQ2O,OAAOG,SAAWjc,GAC/CA,EAQC,OAFAmc,GAAO2C,IAAIC,OAAOxP,OAAO,6BAA8B,IACvDpI,QAAae,aACNkW,EAAK,2BANZjC,GAAO2C,IAAIC,OAAOxP,OAAO,6BAA8BzB,UAY/DqO,GAAO2C,IAAIC,OAAOvP,SAAS,SAI/B,OAAInC,IAAiB4O,EACVmC,EAAK,2BAIbV,IAAwBzB,EAEhBmC,EAAK,aAGZV,GAEAU,OAKOjC,U,yDCzGf,MAAM8C,GAAU,IAAIC,KAAQ,CACxBC,MACA,CACIC,SAAU,OAEdC,MAAO,CACHC,OAAQ,CACJC,KAAM,CACFC,QAAS,UACTC,UAAW,UACXC,OAAQ,UACR7a,MAAO,YAIf0a,MAAM,GAEVI,QAAS,CACLC,kBAAkB,KAK1BrS,aAAIC,IAAI0R,MAER3R,aAAIC,IAAIqS,QAAqB,CAC3BZ,QAAO,GACPa,WAAY,QAGCb,U,0BCnCf,MAAMc,GAASvC,IACXwC,GAAcC,aAAavc,QAAQ8J,IAC9B0S,IACG,MAAMtY,EAAQT,QAAaQ,sBAI3B,OAHIC,IACAsY,EAAO1R,QAAQ,iBAAmB,UAAY5G,GAE3CsY,GAEXrb,IACItC,QAAQE,OAAOoC,KAGvB,MAAMsb,EAAcH,GAAcC,aAAa/Q,SAAS1B,IACpD0B,GAAYA,EACZrK,IACI,MAAMub,EAAiBvb,EAAMqb,OAE7B,OAAIrb,EAAMqK,UAAsC,MAA1BrK,EAAMqK,SAAS4M,OAC1BvZ,QAAQE,OAAOoC,IAM1B0J,KAAM0R,aAAa/Q,SAASmR,MAAMF,GAE9BC,EAAeE,YAAnB,GAEIF,EAAeE,QAAS,EACjB/R,KAAMc,KAAK,+BAAgC,CAC9CkR,MAAOpZ,QAAaC,yBACrBhD,KAAK8K,IACJsO,EAAMhO,SAAS,uBAAwBN,EAASlP,KAAK4H,OACrDT,QAAaU,uBAAuBqH,EAASlP,KAAK4H,OAClDwY,EAAe5R,QAAQ,iBAAmB,UAAYU,EAASlP,KAAK4H,MAC7D2G,KAAM6R,KACdjR,MAAMtK,IACDA,EAAMqK,UAAsC,MAA1BrK,EAAMqK,SAAS4M,QAA8C,MAA1B3U,QAAaa,YAElEwV,EAAMhO,SAAS,4BAA6B,CAAE5H,MAAOT,QAAaC,yBAClEoW,EAAMjO,OAAO,6BAA8B,IAC3CpI,QAAae,aACbiU,GAAOrb,KAAK,4BAETyB,QAAQE,OAAOoC,KACvBma,QAAQe,SAMZA,UC/CfxS,aAAIC,IAAIC,QACRF,aAAIC,IAAIgT,SACRC,GAAkBjD,IAElBjQ,aAAI7M,UAAUggB,KAAOhS,8BACrBH,KAAMI,SAASF,QAAUlB,aAAI7M,UAAUggB,KACvCnT,aAAIC,IAAImT,QAAUpS,MAGdhB,aAAI2S,OAAOU,UAAW,EACtBrT,aAAI2S,OAAOW,eAAgB,EAE/BC,EAAQ,QACRA,EAAQ,QAER,IAAIvT,aAAI,CACN0R,WACAzB,SACArB,UACAnS,OAAQ+W,GAAKA,EAAEC,MACdC,OAAO,S,kCC9BV,W,uBCAA/e,EAAOD,QAAU,IAA0B,mC,4CCA5B,QACXuI,QACA,CAEI0W,WAEIxY,KAAKyY,KAAM,MAIfC,gBAEI1Y,KAAKyY,KAAM,4BAEfE,UAAUnF,GAENxT,KAAK4Y,gBAAiB,QAAQpF,IAElCqF,qBAEI7Y,KAAKyY,KAAM,0CAIfK,kBAEI9Y,KAAKyY,KAAM,eAEfM,cAEI/Y,KAAKyY,KAAM,uBAEfO,oBAEIhZ,KAAKyY,KAAM,mCAEfQ,iBAAiBC,EAAMC,GAEnB,MAAMC,EAAQpZ,KAAKqZ,eAAeH,EAAMC,GACxCnZ,KAAKyY,KAAM,wBAAuBW,IAEtCE,yBAAyBF,GAErBpZ,KAAKyY,KAAM,wBAAuBW,eAEtCG,mBAEIvZ,KAAKyY,KAAM,yBAEfe,aAAaN,EAAMC,GAEf,MAAMC,EAAQpZ,KAAKqZ,eAAeH,EAAMC,GACxCnZ,KAAKyY,KAAM,wBAAuBW,IAItCK,kBAEIzZ,KAAKyY,KAAM,mCAEfiB,aAAajU,GAETzF,KAAKyY,KAAM,wBAAuBhT,IAEtCkU,qBAAqBlU,GAEjBzF,KAAKyY,KAAM,iCAAgChT,IAE/CmU,iBAEI5Z,KAAKyY,KAAM,kDAEfoB,uBAAuBX,EAAMC,GAEzB,MAAMC,EAAQpZ,KAAKqZ,eAAeH,EAAMC,GACxCnZ,KAAKyY,KAAM,wBAAuBW,qBAEtCU,eAEI9Z,KAAKyY,KAAM,yBAEfsB,eAEI/Z,KAAKyY,KAAM,wBAEfuB,cAAchS,GAEVhI,KAAKyY,KAAM,uBAAsBzQ,IAErCiS,QAAQC,GAEJla,KAAKyY,KAAM,yBAAwByB,IAEvCC,WAEIna,KAAKyY,KAAM,0BAEf2B,gBAEIpa,KAAKyY,KAAM,6BAEf4B,kBAEIra,KAAKyY,KAAM,uCAEf6B,eAAetS,GAEXhI,KAAKyY,KAAM,0BAAyBzQ,IAIxCuS,wBAEIva,KAAKyY,KAAM,aAEf+B,YAAYpB,GAERpZ,KAAKyY,KAAM,YAAWW,EAAMqB,gBAEhCC,gBAAgBC,EAAMzB,EAAMC,GAExB,MAAMC,EAAQpZ,KAAKqZ,eAAeH,EAAMC,GACxCnZ,KAAKyY,KAAM,YAAWkC,EAAKF,iBAAiBrB,MAIhDwB,mBAEI5a,KAAKyY,KAAM,cAEfoC,aAAa3B,EAAMC,GAEf,MAAMC,EAAQpZ,KAAKqZ,eAAeH,EAAMC,GACxCnZ,KAAKyY,KAAM,aAAYW,IAE3B0B,sBAAsB5B,EAAMC,GAExB,MAAMC,EAAQpZ,KAAKqZ,eAAeH,EAAMC,GACxCnZ,KAAKyY,KAAM,aAAYW,gBAE3B2B,2BAA2B7B,EAAMC,GAE7B,MAAMC,EAAQpZ,KAAKqZ,eAAeH,EAAMC,GACxCnZ,KAAKyY,KAAM,aAAYW,qBAE3B4B,gCAAgC9B,EAAMC,GAElC,MAAMC,EAAQpZ,KAAKqZ,eAAeH,EAAMC,GACxCnZ,KAAKyY,KAAM,aAAYW,8BAI3B6B,mBAAmB3U,GAEftG,KAAKyY,KAAM,uBAAsBnS,IAErC4U,gBAAgB1S,GAEZxI,KAAKyY,KAAM,oBAAmBjQ,IAGlC2S,cAEInb,KAAKyY,KAAK,cAGdA,KAAK5V,GAED7C,KAAKob,QAAQhjB,KAAK,CAAEyK,KAAMA,KAE9B+V,gBAAgB/V,EAAM2Q,GAElBxT,KAAKob,QAAQhjB,KAAK,CAAEqE,KAAMoG,EAAMR,MAAO,CAAEgZ,SAAU7H,MAEvD6F,eAAeH,EAAMC,GAEjB,MAAQ,GAAED,EAAKoC,QAAQ,OAAQ,KAAKb,iBAAiBtB,Q,+GChLlD,QACX7hB,KAAM,WAEF,MAAO,CACHikB,iBAAkB,IAClBC,kBAAmB,KAG3B1Z,QACA,CACI2Z,WAEI,OAAQ,IAAInH,KAAKA,KAAKoH,MAA2C,KAAlC,IAAIpH,MAAQqH,qBAA8BC,cAAcC,OAAO,EAAG,KAErGC,iBAEI,OAAO,IAAIxH,MAAOC,eAEtBwH,oBAEI,OAAOC,KAAKC,OAAM,IAAI3H,MAAO4H,WAAa,EAAI,IAElDC,kBAEI,MAAMpf,EAAI,IAAIuX,KACd,IAAItL,EAAQjM,EAAEmf,WAEd,OAAOlT,EAAQ,GAEnBoT,WAAYjD,GACR,IAAKA,EAAM,OAAO,KAElB,MAAOlQ,EAAMD,EAAOqT,GAAOlD,EAAKmD,MAAM,KACtC,MAAQ,GAAED,KAAOrT,KAASC,KAE9BsT,sBAAsBpD,GAElB,OAAKA,GAGLA,EAAOnZ,KAAKwc,YAAYrD,GACjBnZ,KAAKoc,WAAWjD,IAJL,MAMtBqD,YAAYrD,GAGR,OAAKA,EAEEA,EAAK0C,OAAO,EAAG,IAFJ,MAItBY,YAAYtD,GAER,OAAKA,EAEEA,EAAK0C,OAAO,EAAG,GAFJ,MAItBa,aAAavD,GAET,OAAKA,EAEEA,EAAK0C,OAAO,EAAG,GAFJ,MAItBc,YAAYxD,GAGR,OAAKA,EAEEA,EAAK0C,OAAO,GAAI,GAFL,MAItBe,eACI,MAAO,cAEXC,aAAaC,GAGT,MAAO7T,EAAMD,EAAOqT,GAAOrc,KAAKyb,WAAWa,MAAM,KACjD,MAAQ,GAAErT,EAAO6T,KAAY9T,KAASqT,KAG1CU,UAAW5D,GACP,IAAKA,EAAM,OAAO,KAElB,MAAOkD,EAAKrT,EAAOC,GAAQkQ,EAAKmD,MAAM,KACtC,MAAQ,GAAErT,KAAQD,EAAMgU,SAAS,EAAG,QAAQX,EAAIW,SAAS,EAAG,QAEhEC,eAAe9D,GAEX,QAAWzc,GAARyc,EAAmB,OAAOA,EAG7B,MAAMpc,EAAI,IAAIuX,KAAK6E,IACZ,CAAC,CAAEkD,GAAOlD,EAAKmD,MAAM,KACxB,MAAQ,GAAED,KAAOtf,EAAEmgB,eAAe,KAAM,CAAElU,MAAO,YAEzDmU,mBAAmBhE,GAEf,QAAWzc,GAARyc,EAAmB,OAAOA,EAG7B,MAAMpc,EAAI,IAAIuX,KAAK6E,IACZlQ,EAAK,CAAEoT,GAAOlD,EAAKmD,MAAM,KAC5B,MAAQ,GAAED,KAAOtf,EAAEmgB,eAAe,KAAM,CAAElU,MAAO,aAAcC,KAEvEmU,QAAQjE,EAAMkE,GAEV,IAAIC,EAAU,IAAIhJ,KAAK,IAAIA,KAAK6E,GAAMoE,QAAQ,IAAIjJ,KAAK6E,GAAMqE,UAAYH,IACzE,OAAOC,EAAQ1B,cAAcC,OAAO,EAAG,KAI3C4B,YAAYC,GAER,YAAahhB,GAAVghB,EAA4B,GAEvBA,EAAQR,eAAe,QAAS,CACpC5Z,MAAO,WACPqa,SAAU,SAGlBC,uBAAuBC,GAEnB,MAAMC,EAAwB,GAATD,EAAa,IAAM,GACxC,OAAOA,EAAQA,EAAME,WAAWzC,QAAQ,IAAKtb,KAAKub,kBAAoBuC,GAE1EE,gBAAgBH,GAEZ,IAAII,EAAMJ,EAAMvC,QAAQtb,KAAKub,iBAAkB,KAG/C,OAAOvb,KAAKke,uBAAuBD,IAEvCC,uBAAuBD,GAEnB,IAAIE,EAASC,WAAWH,GACxB,OAAGI,MAAMF,GAEE,KAGJA,GAGXG,kBAAkBC,EAAWC,GAEzB,MAAMC,EAAQD,EAASlC,MAAM,KAC7B,MAAQ,GAAEiC,EAAUG,OAAO,KAAKD,EAAMA,EAAM3mB,OAAS,GAAG4mB,OAAO,S,yDCjJ3E,W,qBCAAllB,EAAOD,QAAU,IAA0B,kC,kCCA3C","file":"js/app.28ac5969.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-001b1fcd\":\"baf8a7d5\",\"chunk-02ae3a4a\":\"0432d0af\",\"chunk-0818b10a\":\"f62867ef\",\"chunk-11305927\":\"ebcdfea6\",\"chunk-1c787af3\":\"affcd0bd\",\"chunk-1f9d1460\":\"e371b75c\",\"chunk-216cf338\":\"1c776b8a\",\"chunk-276a88e3\":\"e055102b\",\"chunk-a9ab88ec\":\"1305d100\",\"chunk-2d22630c\":\"9d235c73\",\"chunk-465f99d8\":\"e02bbee8\",\"chunk-47ae1e65\":\"ab352945\",\"chunk-58506838\":\"099dbdff\",\"chunk-58b14101\":\"06ca67ca\",\"chunk-5d94623c\":\"db97e118\",\"chunk-70ddfeb8\":\"7eab86fd\",\"chunk-71f3dcf9\":\"7daf4c93\",\"chunk-748f120c\":\"cd52d8d3\",\"chunk-778743d7\":\"1adc6a67\",\"chunk-b27f14fe\":\"107e1474\",\"chunk-c5d01082\":\"42ccd14a\",\"chunk-7bc8a28a\":\"aa5d0b22\",\"chunk-e7488bf4\":\"3337343d\",\"chunk-85351b8c\":\"83d0198a\",\"chunk-3209266e\":\"75a2a122\",\"chunk-32f828b6\":\"e82cb898\",\"chunk-368e1acc\":\"af282527\",\"chunk-0877e5ab\":\"d4c1ea9e\",\"chunk-1360dd44\":\"cb1e8cc0\",\"chunk-53d373bc\":\"1c6862c5\",\"chunk-474c3914\":\"b4b4802d\",\"chunk-48526304\":\"b4dc4f5e\",\"chunk-49ce5f1c\":\"37e183d8\",\"chunk-8b1616e8\":\"9b512175\",\"chunk-9a21fe3a\":\"7f15cf89\",\"chunk-2380eb04\":\"64a72219\",\"chunk-2d20f51a\":\"f23b8bae\",\"chunk-09f6b3b3\":\"49c9fd81\",\"chunk-0293b837\":\"d5c5f6fa\",\"chunk-068c587e\":\"8bb5cf3e\",\"chunk-55359c59\":\"6d4d65e7\",\"chunk-66414878\":\"2ec83cbc\",\"chunk-3b0dc227\":\"687fb4ab\",\"chunk-440c7f0e\":\"9ec2b5ee\",\"chunk-5ddabda1\":\"508d5c3b\",\"chunk-4694de55\":\"65e1f4b8\",\"chunk-6fad00d7\":\"69d4be08\",\"chunk-c69bef48\":\"c2070263\",\"chunk-a28cb570\":\"fbc59a2e\",\"chunk-c2a339be\":\"dd74c6c6\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-1c787af3\":1,\"chunk-216cf338\":1,\"chunk-276a88e3\":1,\"chunk-a9ab88ec\":1,\"chunk-465f99d8\":1,\"chunk-58506838\":1,\"chunk-58b14101\":1,\"chunk-5d94623c\":1,\"chunk-70ddfeb8\":1,\"chunk-71f3dcf9\":1,\"chunk-748f120c\":1,\"chunk-778743d7\":1,\"chunk-c5d01082\":1,\"chunk-7bc8a28a\":1,\"chunk-e7488bf4\":1,\"chunk-85351b8c\":1,\"chunk-3209266e\":1,\"chunk-32f828b6\":1,\"chunk-368e1acc\":1,\"chunk-0877e5ab\":1,\"chunk-1360dd44\":1,\"chunk-53d373bc\":1,\"chunk-474c3914\":1,\"chunk-48526304\":1,\"chunk-49ce5f1c\":1,\"chunk-8b1616e8\":1,\"chunk-9a21fe3a\":1,\"chunk-09f6b3b3\":1,\"chunk-0293b837\":1,\"chunk-068c587e\":1,\"chunk-55359c59\":1,\"chunk-66414878\":1,\"chunk-3b0dc227\":1,\"chunk-440c7f0e\":1,\"chunk-5ddabda1\":1,\"chunk-4694de55\":1,\"chunk-6fad00d7\":1,\"chunk-c69bef48\":1,\"chunk-a28cb570\":1,\"chunk-c2a339be\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({}[chunkId]||chunkId) + \".\" + {\"chunk-001b1fcd\":\"31d6cfe0\",\"chunk-02ae3a4a\":\"31d6cfe0\",\"chunk-0818b10a\":\"31d6cfe0\",\"chunk-11305927\":\"31d6cfe0\",\"chunk-1c787af3\":\"6c8f33b4\",\"chunk-1f9d1460\":\"31d6cfe0\",\"chunk-216cf338\":\"87fe718b\",\"chunk-276a88e3\":\"9acaf6d6\",\"chunk-a9ab88ec\":\"53f5a747\",\"chunk-2d22630c\":\"31d6cfe0\",\"chunk-465f99d8\":\"6c8f33b4\",\"chunk-47ae1e65\":\"31d6cfe0\",\"chunk-58506838\":\"dd8ec180\",\"chunk-58b14101\":\"780cccf1\",\"chunk-5d94623c\":\"f70e0801\",\"chunk-70ddfeb8\":\"ec7c3674\",\"chunk-71f3dcf9\":\"157a6dc2\",\"chunk-748f120c\":\"6c8f33b4\",\"chunk-778743d7\":\"42b919b1\",\"chunk-b27f14fe\":\"31d6cfe0\",\"chunk-c5d01082\":\"929af710\",\"chunk-7bc8a28a\":\"a50878a6\",\"chunk-e7488bf4\":\"1fd09894\",\"chunk-85351b8c\":\"74dcbf64\",\"chunk-3209266e\":\"75aa286d\",\"chunk-32f828b6\":\"ee7bfd0f\",\"chunk-368e1acc\":\"4f0bb4b9\",\"chunk-0877e5ab\":\"1c125d3c\",\"chunk-1360dd44\":\"720ffddc\",\"chunk-53d373bc\":\"7c169009\",\"chunk-474c3914\":\"2325ef56\",\"chunk-48526304\":\"dbf9cd8d\",\"chunk-49ce5f1c\":\"0875aa9c\",\"chunk-8b1616e8\":\"cf0238de\",\"chunk-9a21fe3a\":\"88d0b91a\",\"chunk-2380eb04\":\"31d6cfe0\",\"chunk-2d20f51a\":\"31d6cfe0\",\"chunk-09f6b3b3\":\"c50e1c3b\",\"chunk-0293b837\":\"63170919\",\"chunk-068c587e\":\"5c1ac758\",\"chunk-55359c59\":\"49418df6\",\"chunk-66414878\":\"63170919\",\"chunk-3b0dc227\":\"0cb31776\",\"chunk-440c7f0e\":\"b83ca422\",\"chunk-5ddabda1\":\"66365431\",\"chunk-4694de55\":\"892cdd9e\",\"chunk-6fad00d7\":\"b3d5d5e1\",\"chunk-c69bef48\":\"f379ebe7\",\"chunk-a28cb570\":\"2abe1de2\",\"chunk-c2a339be\":\"9930b25b\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","module.exports = __webpack_public_path__ + \"img/roadpursuit-grey-logo.155d0476.svg\";","import { RolesEnum } from '@/enums/RolesEnum';\r\n\r\nclass TokenService {\r\n getLocalRefreshToken() {\r\n const user = JSON.parse(localStorage.getItem(\"user\"));\r\n return user?.refreshToken;\r\n }\r\n getLocalAccessToken() {\r\n const user = JSON.parse(localStorage.getItem(\"user\"));\r\n return user?.token;\r\n }\r\n updateLocalAccessToken(token) {\r\n let user = JSON.parse(localStorage.getItem(\"user\"));\r\n user.token = token;\r\n localStorage.setItem(\"user\", JSON.stringify(user));\r\n }\r\n getUser() {\r\n return JSON.parse(localStorage.getItem(\"user\"));\r\n }\r\n setUser(user) {\r\n localStorage.setItem(\"user\", JSON.stringify(user));\r\n }\r\n removeUser() {\r\n localStorage.removeItem(\"user\");\r\n }\r\n getRPKey(role) {\r\n //RoadpursuitAuthenticated\r\n return role == RolesEnum.Administrator ? '$2y$19$NKUhMtAs3rZMIOZOi7u4yORnfAdFsMg/Uq8D8f6XEIDPPxs9F0JEW' : ''; \r\n }\r\n isAdmin()\r\n {\r\n const user = JSON.parse(localStorage.getItem(\"user\"));\r\n return user?.rpKey == this.getRPKey(RolesEnum.Administrator);\r\n }\r\n\r\n \r\n}\r\nexport default new TokenService();","export const RolesEnum = {\r\n Administrator: \"ADMINISTRATOR\",\r\n Employee: \"EMPLOYEE\",\r\n AccountOwner: \"ACCOUNTOWNER\",\r\n Guest: \"GUEST\",\r\n SupplierContact: \"SUPPLIERCONTACT\"\r\n}\r\nObject.freeze(RolesEnum);","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SocialMediaLinks.vue?vue&type=style&index=0&id=575e938e&prod&scoped=true&lang=css&\"","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{class:this.$vuetify.breakpoint.name,attrs:{\"id\":\"app\"}},[_c('v-main',{staticClass:\"main-content\",attrs:{\"app\":\"\"}},[_c('v-layout',[[_c('v-col',{staticClass:\"text-center d-flex justify-center content-wrapper\",attrs:{\"no-gutters\":\"\"}},[_c('Menu',{attrs:{\"routes\":_vm.$router.options.routes.filter(x => x.isMenu)}}),_c('v-app',[_c('router-view')],1),_c('Footer')],1)]],2),_c('MessageDialog')],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"font-weight-thin nav-wrapper\"},[_c('v-app-bar',{attrs:{\"fixed\":\"\",\"dark\":\"\",\"height\":68}},[_c('v-toolbar',[_c('img',{staticClass:\"main-logo logo\",class:{ 'hamburger--is-open slow-closing' :_vm.overlay, 'slow-opening' :_vm.overlay==false },attrs:{\"transition\":\"fade-transition\",\"src\":_vm.logoSrc,\"alt\":\"RP\"},on:{\"click\":function($event){return _vm.onRouteClick('/')}}}),_c('v-spacer'),_c('v-toolbar-title',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.$vuetify.breakpoint.xs),expression:\"!$vuetify.breakpoint.xs\"}]}),_c('v-spacer'),_c('button',{staticClass:\"hamburger app\",class:{ 'hamburger--is-open slow-closing' :_vm.overlay, 'slow-opening' :_vm.overlay==false },on:{\"click\":function($event){return _vm.toggleOverlay()}}})],1)],1),_c('v-row',{staticClass:\"mobile-menu-bar\",class:{ 'slow-opening' :_vm.overlay, 'slow-closing' :_vm.overlay==false }},[_c('img',{staticClass:\"logo\",attrs:{\"src\":_vm.logoSrc,\"alt\":\"RP\"}}),_c('button',{staticClass:\"hamburger app\",class:{ 'hamburger--is-open' :_vm.overlay },on:{\"click\":function($event){return _vm.toggleOverlay()}}}),_c('SocialMediaLinks')],1),_c('v-overlay',{staticClass:\"menu-overlay\",class:{ 'slow-opening' :_vm.overlay, 'slow-closing' :_vm.overlay==false },attrs:{\"z-index\":7},on:{\"click\":function($event){_vm.overlay = false}}},[_c('div',[_c('div',{staticClass:\"text-center\",attrs:{\"id\":\"staggered-list\"}},[_c('transition-group',{attrs:{\"name\":\"staggered-fade\",\"tag\":\"ul\",\"css\":false},on:{\"before-enter\":_vm.beforeEnter,\"enter\":_vm.enter}},_vm._l((_vm.computedList),function(item,index){return _c('div',{key:index,staticClass:\"mobile-menu pointer\",class:{ 'active' :_vm.$router.currentRoute.path == item.path },attrs:{\"data-index\":index},on:{\"click\":function($event){return _vm.onRouteClick(item.path)}}},[_vm._v(_vm._s(_vm.getFilteredName(item.name)))])}),0)],1)])])],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('img',{staticClass:\"logo-fb\",attrs:{\"src\":_vm.facebookLogoSrc,\"alt\":\"Facebook\"},on:{\"click\":_vm.goToFacebook}}),_c('img',{staticClass:\"logo-insta\",attrs:{\"src\":_vm.instagramLogoSrc,\"alt\":\"Instagram\"},on:{\"click\":_vm.goToInstagram}})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SocialMediaLinks.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./SocialMediaLinks.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./SocialMediaLinks.vue?vue&type=template&id=575e938e&scoped=true&\"\nimport script from \"./SocialMediaLinks.vue?vue&type=script&lang=js&\"\nexport * from \"./SocialMediaLinks.vue?vue&type=script&lang=js&\"\nimport style0 from \"./SocialMediaLinks.vue?vue&type=style&index=0&id=575e938e&prod&scoped=true&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"575e938e\",\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Menu.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Menu.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Menu.vue?vue&type=template&id=43d41df4&\"\nimport script from \"./Menu.vue?vue&type=script&lang=js&\"\nexport * from \"./Menu.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Menu.vue?vue&type=style&index=0&id=43d41df4&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return (_vm.showFooter)?_c('v-footer',{attrs:{\"dark\":\"\",\"padless\":\"\"}},[_c('v-card',{staticClass:\"flex pt-12 text-center\",attrs:{\"flat\":\"\",\"tile\":\"\"}},[_c('v-card-text',{staticClass:\"main-footer\"},[_c('div',{staticClass:\"footer-container\"},[_c('div',[_vm._v(\"Ā© Roadpursuit \"+_vm._s(_vm.getCurrentYear()))]),_c('div',[_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('a',_vm._g({style:(_vm.style),attrs:{\"target\":\"_blank\",\"href\":\"https://www.roadpursuit.com/data/algemene-voorwaarden-roadpursuit.pdf\"},on:{\"click\":function($event){$event.stopPropagation();}}},on),[_vm._v(\" Algemene Voorwaarden\")])]}}],null,false,3831016708)},[_vm._v(\" Opent nieuw tabblad \")]),_vm._v(\" | \"),_c('v-tooltip',{attrs:{\"bottom\":\"\"},scopedSlots:_vm._u([{key:\"activator\",fn:function({ on }){return [_c('a',_vm._g({style:(_vm.style),attrs:{\"target\":\"_blank\",\"href\":\"https://roadpursuit.com/data/privacyverklaring-roadpursuit.pdf\"},on:{\"click\":function($event){$event.stopPropagation();}}},on),[_vm._v(\" Privacyverklaring\")])]}}],null,false,1875254288)},[_vm._v(\" Opent nieuw tabblad \")]),_vm._v(\" | \"),_c('a',{style:(_vm.style),attrs:{\"href\":\"https://www.roadpursuit.com/over-ons\"},on:{\"click\":function($event){$event.stopPropagation();}}},[_vm._v(\" Contact en nieuwsbrief \")])],1),_c('div',{staticClass:\"mb-2\"},[_vm._v(\"Bijlmerdreef 424, 1102 AC Amsterdam | KvK 82865914\")]),_c('SocialMediaLinks')],1)])],1)],1):_vm._e()\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Footer.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Footer.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Footer.vue?vue&type=template&id=010574e2&\"\nimport script from \"./Footer.vue?vue&type=script&lang=js&\"\nexport * from \"./Footer.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Footer.vue?vue&type=style&index=0&id=010574e2&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"message-dialog\"},[_c('v-row',{staticClass:\"no-gutters\"},[_c('v-col',{attrs:{\"cols\":\"auto\"}},[_c('v-dialog',{attrs:{\"persistent\":\"\",\"color\":\"white\",\"max-width\":\"600\"},model:{value:(_vm.dialogVisible),callback:function ($$v) {_vm.dialogVisible=$$v},expression:\"dialogVisible\"}},[[_c('v-card',[_c('v-card-text',[_c('div',{staticClass:\"subtitle-2 px-8 pt-10\",domProps:{\"innerHTML\":_vm._s(_vm.dialogMessage)}})]),_c('v-card-actions',{staticClass:\"pb-5\"},[_c('v-spacer'),_c('v-btn',{on:{\"click\":function($event){$event.stopPropagation();return _vm.ok.apply(null, arguments)},\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\"))return null;$event.stopPropagation();return _vm.yes.apply(null, arguments)}}},[_vm._v(\"OK\")])],1)],1)]],2)],1)],1)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MessageDialog.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./MessageDialog.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./MessageDialog.vue?vue&type=template&id=326347e2&\"\nimport script from \"./MessageDialog.vue?vue&type=script&lang=js&\"\nexport * from \"./MessageDialog.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=4f8bb9f0&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=4f8bb9f0&prod&lang=css&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export const home = [\r\n {\r\n path: \"/\",\r\n name: \"Home\",\r\n isMenu: true,\r\n component: () =>\r\n import(\"@/views/home/Home.vue\"),\r\n },\r\n];","export const account = [\r\n {\r\n path: \"/mijn-roadpursuit/login\",\r\n name: \"Login\",\r\n component: () => import(\"@/views/account/Login.vue\"),\r\n },\r\n {\r\n path: \"/mijn-roadpursuit/registratie\",\r\n name: \"Registratie\",\r\n component: () => import(\"@/views/account/Registratie.vue\"),\r\n },\r\n {\r\n path: \"/mijn-roadpursuit/activeren/:activationString\",\r\n name: \"Registratie Welkom\",\r\n component: () => import(\"@/views/account/RegistratieWelkom.vue\"),\r\n },\r\n\r\n {\r\n path: \"/mijn-roadpursuit/wachtwoord-vergeten\",\r\n name: \"Wachtwoord Vergeten\",\r\n component: () => import(\"@/views/account/WachtwoordVergeten.vue\"),\r\n },\r\n {\r\n path: \"/mijn-roadpursuit/wachtwoord-wijzigen\",\r\n name: \"Wachtwoord Wijzigen\",\r\n component: () => import(\"@/views/account/WachtwoordWijzigenDashboard.vue\"),\r\n },\r\n];","export const dashboard = [\r\n {\r\n path: \"/dashboard\",\r\n name: \"Mijn Roadpursuit\",\r\n isMenu: true,\r\n requiresAuth: true,\r\n requiresRoleCheck: true,\r\n component: () => \r\n import(\"@/views/dashboard/Dashboard.vue\"),\r\n },\r\n {\r\n path: \"/dashboard/account\",\r\n name: \"Account\",\r\n requiresAuth: true,\r\n component: () => import(\"@/views/dashboard/Account.vue\"),\r\n },\r\n {\r\n path: \"/dashboard/account/verwijderen\",\r\n name: \"Account verwijderen\",\r\n requiresAuth: true,\r\n component: () => import(\"@/views/dashboard/AccountVerwijderen.vue\"),\r\n },\r\n {\r\n path: `/dashboard/aankomend/:trip`, // /{trip-name}-{day-month-year}/\r\n name: `Aankomende Roadtrip`,\r\n requiresAuth: true,\r\n component: () =>\r\n import(\"@/views/dashboard/AankomendeRoadtrip.vue\"),\r\n },\r\n {\r\n path: `/dashboard/aankomend/:trip/wijzigen`, // /{trip-name}-{day-month-year}/wijzigen\r\n name: `Aankomende Roadtrip Wijzigen`,\r\n requiresAuth: true,\r\n component: () =>\r\n import(\"@/views/dashboard/AankomendeRoadtripWijzigen.vue\"),\r\n },\r\n {\r\n path: `/dashboard/afgelopen`,\r\n name: `Afgelopen Roadtrips`,\r\n requiresAuth: true,\r\n component: () =>\r\n import(\"@/views/dashboard/AfgelopenRoadtrips.vue\"),\r\n },\r\n {\r\n path: `/dashboard/afgelopen/:trip`, // /{trip-name}-{day-month-year}/\r\n name: `Afgelopen Roadtrip`,\r\n requiresAuth: true,\r\n component: () =>\r\n import(\"@/views/dashboard/AfgelopenRoadtrip.vue\"),\r\n },\r\n {\r\n path: `/dashboard/voertuigen/:carId`, \r\n name: `Voertuig`,\r\n requiresAuth: true,\r\n component: () =>\r\n import(\"@/views/dashboard/Voertuig.vue\"),\r\n },\r\n];","import Vue from \"vue\";\r\nimport Vuex from \"vuex\";\r\n\r\nVue.use(Vuex);\r\n\r\nconst authorizedModule = {\r\n namespaced: true,\r\n state:\r\n {\r\n samples: [],\r\n userId: '',\r\n isAdmin: false\r\n },\r\n getters:\r\n {\r\n\r\n },\r\n mutations:\r\n { \r\n setSamples(state, data)\r\n {\r\n state.samples = data;\r\n },\r\n setUserId(state, id)\r\n {\r\n state.userId = id;\r\n },\r\n setAdmin(state, isAdmin)\r\n {\r\n state.isAdmin = isAdmin;\r\n }\r\n },\r\n actions:\r\n {\r\n },\r\n};\r\n\r\n\r\nexport default authorizedModule;","import axios from \"axios\";\r\n// import axios from \"axios\";\r\n\r\nconst instance = axios.create({\r\n headers: {\r\n baseURL : process.env.VUE_APP_BASE_URL,\r\n \"Content-Type\": \"application/json\",\r\n },\r\n});\r\n\r\ninstance.defaults.baseURL = process.env.VUE_APP_BASE_URL;\r\nexport default instance;","/* eslint-disable no-empty-pattern */\r\nimport Vue from \"vue\";\r\nimport Vuex from \"vuex\";\r\nimport api from '@/services/api';\r\n\r\nVue.use(Vuex);\r\n\r\nconst roadtripModule = {\r\n namespaced: true,\r\n state:\r\n {\r\n isLoading: false,\r\n },\r\n getters:\r\n {\r\n \r\n },\r\n mutations:\r\n {\r\n setLoading(state, isLoading)\r\n {\r\n state.isLoading = isLoading;\r\n },\r\n },\r\n actions:\r\n {\r\n getRoadtripStatistics({}, roadtripId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`/Roadtrip/admin/GetRoadtripStatistics?roadtripId=${roadtripId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n getRoadtripStatisticsByTimeFrame({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Roadtrip/admin/dashboard/GetRoadtripStatisticsByTimeFrame`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response)\r\n })\r\n })\r\n },\r\n addRoadtrip({commit, dispatch}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n commit('setLoading', true);\r\n api.post(`/Roadtrip/AddRoadtrip`, request)\r\n .then(response => {\r\n\r\n // images\r\n let imageRequest = new FormData();\r\n imageRequest.append('ProductId', response.data.productId);\r\n request.productPhotos.forEach(photo => {\r\n if (photo)\r\n {\r\n imageRequest.append(`ProductPhotos`, photo);\r\n }\r\n });\r\n\r\n // GPX\r\n if (request.gpx_file != null && request.gpx_file != \"\")\r\n {\r\n let gpxRequest = new FormData();\r\n gpxRequest.append('RoadtripId', response.data.roadtripId);\r\n gpxRequest.append('File', request.gpx_file);\r\n\r\n Promise.all([\r\n dispatch('addRoadtripPhotos', imageRequest),\r\n dispatch('addGPXToRoadtrip', gpxRequest),\r\n ]).then(() => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response))\r\n }\r\n else\r\n {\r\n Promise.all([\r\n dispatch('addRoadtripPhotos', imageRequest),\r\n ]).then(() => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response))\r\n }\r\n })\r\n .catch(error => reject(error.response))\r\n })\r\n },\r\n addRoadtripPhotos({commit}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Product/AddRoadtripProductPhotos`, request,\r\n {\r\n headers: {\r\n 'Content-Type': 'multipart/form-data'\r\n }\r\n })\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n commit('dialog/showDialog', 'Something went wrong with saving photos.', {root: true})\r\n reject(error.response)\r\n })\r\n })\r\n },\r\n addGPXToRoadtrip({commit}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Roadtrip/AddGPXToRoadtrip`, request,\r\n {\r\n headers: {\r\n 'Content-Type': 'multipart/form-data'\r\n }\r\n })\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n commit('dialog/showDialog', 'Something went wrong with saving gpx file.', {root: true})\r\n reject(error.response)\r\n })\r\n })\r\n },\r\n updateRoadtrip({commit, dispatch}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n commit('setLoading', true);\r\n api.post(`/Product/UpdateProduct`, request)\r\n .then(response => {\r\n\r\n // images\r\n let imageRequest = new FormData();\r\n imageRequest.append('ProductId', request.productId);\r\n request.newPhotos.forEach(photo => {\r\n if (photo)\r\n {\r\n imageRequest.append(`ProductPhotos`, photo);\r\n }\r\n });\r\n\r\n // GPX\r\n let gpxRequest = new FormData();\r\n gpxRequest.append('RoadtripId', request.roadtripId);\r\n gpxRequest.append('File', request.gpx_file);\r\n gpxRequest.append('Changes', request.gpx_file_changes);\r\n\r\n if(request.gpx_file_changes != '' && request.gpx_file != null)\r\n {\r\n Promise.all([\r\n dispatch('updateGPXFile', gpxRequest),\r\n dispatch('addRoadtripPhotos', imageRequest)\r\n ]).then(() => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response))\r\n }\r\n else\r\n {\r\n Promise.all([\r\n dispatch('addRoadtripPhotos', imageRequest)\r\n ]).then(() => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response))\r\n }\r\n })\r\n .catch(error => reject(error.response))\r\n })\r\n },\r\n updateGPXFile({commit}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Roadtrip/UpdateGPXFile`, request,\r\n {\r\n headers: {\r\n 'Content-Type': 'multipart/form-data'\r\n }\r\n })\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n commit('dialog/showDialog', 'Something went wrong with updating gpx file.', {root: true})\r\n reject(error.response)\r\n })\r\n })\r\n },\r\n // dashboard\r\n getUpcomingRoadtrips({}, accountId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`/Roadtrip/GetUpcomingRoadtrips?accountId=${accountId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n getUpcomingRoadtripInformation({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Roadtrip/GetUpcomingRoadtripInformation`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n getPassedRoadtrips({}, accountId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`/Roadtrip/GetPassedRoadtrips?accountId=${accountId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n getPassedRoadtrip({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Roadtrip/GetPassedRoadtrip`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n getRoadtripId({}, uniqueName)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`/Roadtrip/GetRoadtripId?uniqueName=${uniqueName}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n getTripDayStatistics({}, roadtripId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`/Roadtrip/GetTripDayStatistics?roadtripId=${roadtripId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n scanQR({}, orderId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`/Roadtrip/ScanQR?orderId=${orderId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n getUnauthorizedScanQRInfo({}, orderId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`/Roadtrip/GetUnauthorizedScanQRInfo?orderId=${orderId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n updateCheckInStatus({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Roadtrip/UpdateCheckInStatus?orderId=${request.orderId}&checkIn=${request.isPresent}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n },\r\n};\r\n\r\nexport default roadtripModule;","/* eslint-disable no-empty-pattern */\r\nimport Vue from \"vue\";\r\nimport Vuex from \"vuex\";\r\nimport api from '@/services/api';\r\n\r\nVue.use(Vuex);\r\n\r\nconst productModule = {\r\n namespaced: true,\r\n state:\r\n {\r\n },\r\n getters:\r\n {\r\n \r\n },\r\n mutations:\r\n {\r\n \r\n },\r\n actions:\r\n {\r\n getAdminProduct({}, roadtripId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`/Product/GetAdminProduct?roadtripId=${roadtripId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n GetProductsByMonthAndYear({}, payload)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`/Product/GetProductsByMonthAndYear?month=${payload.month}&year=${payload.year}&accountId=${payload.accountId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n getPublicProductByNameWhenLoggedIn({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`/Product/GetPublicProductByNameWhenLoggedIn?uniqueName=${request.uniqueName}&accountId=${request.accountId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n getPublicProductByName({}, roadtripName)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`/Product/getPublicProductByName?uniqueName=${roadtripName}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n getNextRoadtripDate({})\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`/Product/GetNextRoadtripDate`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n adjustProductStatus({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Product/AdjustProductStatus`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n },\r\n};\r\n\r\nexport default productModule;","/* eslint-disable no-empty-pattern */\r\nimport Vue from \"vue\";\r\nimport Vuex from \"vuex\";\r\nimport api from '@/services/api';\r\nimport axios from \"axios\";\r\n\r\nVue.use(Vuex);\r\n\r\nconst accountModule = {\r\n namespaced: true,\r\n state:\r\n {\r\n personInfo: {\r\n foodRestrictions: []\r\n },\r\n accountAddress: {},\r\n },\r\n getters:\r\n {\r\n\r\n },\r\n mutations:\r\n {\r\n setAccountPersonInfo(state, info)\r\n {\r\n state.personInfo = info;\r\n },\r\n setAccountAddress(state, address)\r\n {\r\n state.accountAddress = address;\r\n },\r\n addUpdateClickCounter(state)\r\n {\r\n state.updateAccountClickCounter++;\r\n }\r\n },\r\n actions:\r\n {\r\n registerAccount({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`Account/RegisterToRoadpursuit`, request)\r\n .then(response => {\r\n resolve(!response.data);\r\n })\r\n .catch(error => reject(error))\r\n\r\n })\r\n },\r\n isEmailAvailable({}, email)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`Account/TryAccountExists?emailAddress=${email}`)\r\n .then(response => {\r\n resolve(!response.data);\r\n })\r\n .catch(error => reject(error))\r\n\r\n })\r\n },\r\n getFirstNameFromActivationString({}, activationString)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`Person/GetFirstNameFromActivationString?activationString=${activationString}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n\r\n })\r\n },\r\n getEmailAddressFromAccountOwner({}, accountId)\r\n {\r\n if(!accountId) return;\r\n\r\n return new Promise((resolve, reject) => {\r\n api.post(`Person/GetEmailAddressFromAccountOwner?accountId=${accountId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n\r\n })\r\n },\r\n activateAccount({}, activationString)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`Account/ActivateAccount?activationString=${activationString}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n requestAccountDeletionLink({rootState})\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`Account/RequestAccountDeletionLink?accountId=${rootState.authorizedModule.userId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n\r\n })\r\n },\r\n blockAccount({}, accountId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Account/admin/BlockAccount?accountId=${accountId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n unblockAccount({}, accountId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Account/admin/UnblockAccount?accountId=${accountId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n removeAccount({}, accountId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Account/admin/RemoveAccount?accountId=${accountId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n getAccountOwnerBasePersoninfo({}, accountId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`/Person/GetAccountOwnerBasePersoninfo?accountId=${accountId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n getAddressFromAccountowner({}, accountId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`Address/GetAddressFromAccountowner?accountId=${accountId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n getCoRegisteredPersonsFromAccount({}, accountId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`Person/GetCoregisteredPersonsFromAccount?accountId=${accountId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n getAccountsByTimeFrame({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Account/admin/GetAccountsByTimeFrame`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n getAccountStatisticsByTimeFrame({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Account/admin/dashboard/GetAccountStatisticsByTimeFrame`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n updatePersonInfo({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`Person/UpdatePersonInfo`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n updateAddressFromAccountowner({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`Address/UpdateAddressFromAccountowner`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n deletePerson({}, personId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.delete(`/Person/SoftDeletePerson?personId=${personId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n addCoregisteredPersons({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`Person/AddCoregisteredPersons`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n confirmAccountDeletionRequest({}, deletionString)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.delete(`/Account/ConfirmAccountDeletionRequest?deletionString=${deletionString}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n getPasswordChangeLink({}, email)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Account/GetPasswordChangeLink?emailAddress=${email}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n changePassword({}, request) // from email link\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`Account/ChangePassword`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n changePasswordDashBoard({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`Account/ChangePasswordDashBoard`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n reset({commit})\r\n {\r\n commit('setAccountPersonInfo', {\r\n foodRestrictions: []\r\n });\r\n commit('setAccountAddress', {});\r\n },\r\n isAccountOwnerValid({}, userId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n axios.get(`/authentication/IsAccountOwnerValid?userId=${userId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n isPrimaryUser({}, userId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`/authentication/IsPrimaryUser?userId=${userId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n revokeToken({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n axios.post('/authentication/RevokeToken', request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n \r\n },\r\n};\r\n\r\nexport default accountModule;","/* eslint-disable no-empty-pattern */\r\nimport Vue from \"vue\";\r\nimport Vuex from \"vuex\";\r\nimport api from '@/services/api';\r\n\r\nVue.use(Vuex);\r\n\r\nconst vehicleModule = {\r\n namespaced: true,\r\n state:\r\n {\r\n \r\n },\r\n mutations:\r\n {\r\n },\r\n actions:\r\n {\r\n getVehiclesByAccountId({}, accountId)\r\n {\r\n if(!accountId) return;\r\n\r\n return new Promise((resolve, reject) => {\r\n api.get(`/Vehicle/GetVehiclesByAccountId?accountId=${accountId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n getVehicle({}, vehicleId)\r\n {\r\n if(!vehicleId) return;\r\n\r\n return new Promise((resolve, reject) => {\r\n api.get(`Vehicle/GetVehicle?vehicleId=${vehicleId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n getLicenseplateInformation({}, licensePlate)\r\n {\r\n if(!licensePlate) return;\r\n\r\n return new Promise((resolve, reject) => {\r\n api.get(`/Vehicle/GetLicenseplateInformation?licensePlate=${licensePlate}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n getVehicleStatisticsByTimeFrame({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Vehicle/admin/dashboard/GetVehicleStatisticsByTimeFrame`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n addVehicle({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Vehicle/AddVehicle`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n updateVehicle({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Vehicle/UpdateVehicle`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n }) \r\n },\r\n deleteVehicle({}, vehicleId)\r\n {\r\n if(!vehicleId) return;\r\n \r\n return new Promise((resolve, reject) => {\r\n api.delete(`Vehicle/SoftDeleteVehicle?vehicleId=${vehicleId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n }) \r\n },\r\n },\r\n};\r\n\r\nexport default vehicleModule;","/* eslint-disable no-empty-pattern */\r\nimport Vue from \"vue\";\r\nimport Vuex from \"vuex\";\r\nimport api from '@/services/api';\r\n\r\nVue.use(Vuex);\r\n\r\nconst supplierModule = {\r\n namespaced: true,\r\n state:\r\n {\r\n },\r\n getters:\r\n {\r\n \r\n },\r\n mutations:\r\n {\r\n \r\n },\r\n actions:\r\n {\r\n addSupplier({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Supplier/admin/AddSupplier`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n updateSupplier({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Supplier/admin/UpdateBaseSupplierInformation`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n getSupplierFromAccount({}, accountId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`/Supplier/admin/GetBaseSupplierInfoFromAccount?accountId=${accountId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n }\r\n },\r\n};\r\n\r\nexport default supplierModule;","/* eslint-disable no-empty-pattern */\r\nimport Vue from \"vue\";\r\nimport Vuex from \"vuex\";\r\nimport api from '@/services/api';\r\n\r\nVue.use(Vuex);\r\n\r\nconst expenseModule = {\r\n namespaced: true,\r\n state:\r\n {\r\n },\r\n getters:\r\n {\r\n \r\n },\r\n mutations:\r\n {\r\n \r\n },\r\n actions:\r\n {\r\n getFinancialStatisticsByTimeFrame({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Expense/admin/dashboard/GetFinancialStatisticsByTimeFrame`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n },\r\n};\r\n\r\nexport default expenseModule;","/* eslint-disable no-empty-pattern */\r\nimport Vue from \"vue\";\r\nimport Vuex from \"vuex\";\r\nimport api from '@/services/api';\r\nimport axios from '@/services/api';\r\n\r\nVue.use(Vuex);\r\n\r\nconst galleryModule = {\r\n namespaced: true,\r\n state:\r\n {\r\n },\r\n getters:\r\n {\r\n \r\n },\r\n mutations:\r\n {\r\n \r\n },\r\n actions:\r\n {\r\n likePhoto({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Gallery/LikePhoto?`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n getRoadtripGalleryLoggedOut({}, roadtripId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n axios.get(`/Gallery/GetRoadtripGalleryLoggedOut?roadtripId=${roadtripId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n GetRoadtripGalleryLoggedIn({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Gallery/GetRoadtripGalleryLoggedIn?`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n getGalleries({})\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`/Gallery/GetGalleries`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n getGalleriesFromMake({}, makeId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`/Gallery/GetGalleriesFromMake?roadtripLabel=${makeId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n }\r\n },\r\n};\r\n\r\nexport default galleryModule;","/* eslint-disable no-empty-pattern */\r\nimport Vue from \"vue\";\r\nimport Vuex from \"vuex\";\r\nimport api from '@/services/api';\r\n\r\nVue.use(Vuex);\r\n\r\nconst reviewModule = {\r\n namespaced: true,\r\n state:\r\n {\r\n \r\n },\r\n mutations:\r\n {\r\n },\r\n actions:\r\n {\r\n canPlaceReview({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/RoadtripReview/CanPlaceReview`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n placeReview({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/RoadtripReview/PlaceReview`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n updateReview({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/RoadtripReview/UpdateReview`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n getAllReviewsFromRoadtrip({}, roadtripId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/RoadtripReview/GetAllReviewsFromRoadtrip?roadtripId=${roadtripId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n removeReview({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.delete(`/RoadtripReview/RemoveReview?reviewId=${request.reviewId}&accountId=${request.accountId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n }\r\n },\r\n};\r\n\r\nexport default reviewModule;","/* eslint-disable no-empty-pattern */\r\nimport Vue from \"vue\";\r\nimport Vuex from \"vuex\";\r\nimport api from '@/services/api';\r\n\r\nVue.use(Vuex);\r\n\r\nconst newsletterModule = {\r\n namespaced: true,\r\n state:\r\n {\r\n },\r\n getters:\r\n {\r\n \r\n },\r\n mutations:\r\n {\r\n \r\n },\r\n actions:\r\n {\r\n subscribeNonExistingAccountToNewsletter({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Newsletter/SubscribeNonExistingAccountToNewsletter`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n unsubscribeExistingAccountFromNewsletter({}, accountId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Newsletter/UnsubscribeExistingAccountFromNewsletter?accountId=${accountId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n subscribeExistingAccountToNewsletter({}, accountId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Newsletter/SubscribeExistingAccountToNewsletter?accountId=${accountId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n accountIsSubscribed({}, accountId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Newsletter/AccountIsSubscribed?accountId=${accountId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n },\r\n};\r\n\r\nexport default newsletterModule;","/* eslint-disable no-empty-pattern */\r\nimport Vue from \"vue\";\r\nimport Vuex from \"vuex\";\r\nimport api from '@/services/api';\r\n\r\nVue.use(Vuex);\r\n\r\nconst storeModule = {\r\n namespaced: true,\r\n state:\r\n {\r\n \r\n },\r\n getters:\r\n {\r\n\r\n },\r\n mutations:\r\n { \r\n },\r\n actions:\r\n {\r\n placeOrderWithExistingAccount({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Store/PlaceOrderWithExistingAccount`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n placeOrderWithNewAccount({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Store/PlaceOrderWithNewAccount`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n getOrdersInformation({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`/Store/GetOrdersInformation?accountId=${request.accountId}&productId=${request.productId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n },\r\n checkPaymentStatusByOrderId({}, orderId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`/Store/CheckPaymentStatusByOrderId?orderId=${orderId}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error.response.data)\r\n })\r\n })\r\n },\r\n validateVoucher({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.post(`/Voucher/ValidateVoucher`, request)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n }\r\n },\r\n};\r\n\r\n\r\nexport default storeModule;","import Vue from \"vue\";\r\nimport Vuex from \"vuex\";\r\nimport api from '@/services/api';\r\n\r\nVue.use(Vuex);\r\n\r\nconst menuHelper = {\r\n namespaced: true,\r\n state:\r\n {\r\n foodRestrictions: [],\r\n fuelTypes: [],\r\n mileageTypes: [],\r\n billingTypes: [],\r\n vehicleMakes: [],\r\n vehicleTypes: [],\r\n supplierTypes: [],\r\n suppliers: [],\r\n VATRates: [],\r\n itineraryTypes: [],\r\n roadtripLocationTypes: [],\r\n roadtripLabels: [],\r\n productCategories: [],\r\n productStatuses: [],\r\n countries: [],\r\n accountOrigins: [],\r\n },\r\n mutations:\r\n {\r\n setFoodRestrictions(state, data)\r\n {\r\n state.foodRestrictions = data;\r\n },\r\n setFuelTypes(state, data)\r\n {\r\n state.fuelTypes = data;\r\n },\r\n setMileageTypes(state, data)\r\n {\r\n state.mileageTypes = data;\r\n },\r\n setBillingTypes(state, data)\r\n {\r\n state.billingTypes = data;\r\n },\r\n setVehicleMakes(state, data)\r\n {\r\n state.vehicleMakes = data;\r\n },\r\n setVehicleTypes(state, data)\r\n {\r\n state.vehicleTypes = data;\r\n },\r\n setSupplierTypes(state, data)\r\n {\r\n state.supplierTypes = data;\r\n },\r\n setSuppliers(state, data)\r\n {\r\n state.suppliers = data;\r\n },\r\n setVATRates(state, data)\r\n {\r\n state.VATRates = data;\r\n },\r\n setItineraryTypes(state, data)\r\n {\r\n state.itineraryTypes = data;\r\n },\r\n setRoadtripLocationTypes(state, data)\r\n {\r\n state.roadtripLocationTypes = data;\r\n },\r\n setRoadtripLabels(state, data)\r\n {\r\n state.roadtripLabels = data;\r\n },\r\n setProductCategories(state, data)\r\n {\r\n state.productCategories = data;\r\n },\r\n setProductStatuses(state, data)\r\n {\r\n state.productStatuses = data;\r\n },\r\n setCountries(state, data)\r\n {\r\n state.countries = data;\r\n },\r\n setAccountOrigins(state, data)\r\n {\r\n state.accountOrigins = data;\r\n },\r\n },\r\n actions:\r\n {\r\n getVehicleOptions({dispatch}) {\r\n dispatch('getVehicleTypes');\r\n dispatch('getVehicleMakes');\r\n dispatch('getFuelTypes');\r\n },\r\n getFoodRestrictions({commit})\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`MenuHelper/GetFoodRestrictions`)\r\n .then(response => {\r\n commit('setFoodRestrictions', response.data);\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n getFuelTypes({commit})\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`MenuHelper/GetFuelTypes`)\r\n .then(response => {\r\n commit('setFuelTypes', response.data);\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n getMileageTypes({commit})\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`MenuHelper/GetMileageTypes`)\r\n .then(response => {\r\n commit('setMileageTypes', response.data);\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n getBillingTypes({commit})\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`MenuHelper/GetBillingTypes`)\r\n .then(response => {\r\n commit('setBillingTypes', response.data);\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n getVehicleMakes({commit})\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`MenuHelper/GetVehicleMakes`)\r\n .then(response => {\r\n commit('setVehicleMakes', response.data);\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n getVehicleTypes({commit})\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`MenuHelper/GetVehicleTypes`)\r\n .then(response => {\r\n commit('setVehicleTypes', response.data);\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n getSupplierTypes({commit})\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`MenuHelper/GetSupplierTypes`)\r\n .then(response => {\r\n commit('setSupplierTypes', response.data);\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n getVATRates({commit})\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`MenuHelper/GetVATRates`)\r\n .then(response => {\r\n commit('setVATRates', response.data);\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n getItineraryTypes({commit})\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`MenuHelper/GetItineraryTypes`)\r\n .then(response => {\r\n commit('setItineraryTypes', response.data);\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n getRoadtripLocationTypes({commit})\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`MenuHelper/GetRoadtripLocationTypes`)\r\n .then(response => {\r\n commit('setRoadtripLocationTypes', response.data);\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n getRoadtripLabels({commit})\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`MenuHelper/GetRoadtripLabels`)\r\n .then(response => {\r\n commit('setRoadtripLabels', response.data);\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n getProductCategories({commit})\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`MenuHelper/GetProductCategories`)\r\n .then(response => {\r\n commit('setProductCategories', response.data);\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n getProductStatuses({commit})\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`MenuHelper/GetProductStatuses`)\r\n .then(response => {\r\n commit('setProductStatuses', response.data);\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n getCountries({commit})\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`MenuHelper/GetCountries`)\r\n .then(response => {\r\n commit('setCountries', response.data);\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n getAccountOrigins({commit})\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`MenuHelper/GetAccountOrigins`)\r\n .then(response => {\r\n commit('setAccountOrigins', response.data);\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n\r\n // admin\r\n getSuppliers({commit})\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`MenuHelper/GetSuppliers`)\r\n .then(response => {\r\n commit('setSuppliers', response.data);\r\n resolve(response.data);\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n },\r\n};\r\n\r\nexport default menuHelper;","import Vue from \"vue\";\r\nimport Vuex from \"vuex\";\r\n\r\n\r\nVue.use(Vuex);\r\n\r\nconst dialogModule = {\r\n namespaced: true,\r\n state:\r\n {\r\n isDialogVisible: false,\r\n message: \"\",\r\n\r\n isActionDialogVisible: false,\r\n actionMessage: \"\",\r\n\r\n isPictureDialogVisible: false,\r\n imgSrc: \"\",\r\n },\r\n mutations:\r\n {\r\n showDialog(state, message)\r\n {\r\n state.isDialogVisible = true;\r\n state.message = message;\r\n },\r\n hideDialog(state)\r\n {\r\n state.isDialogVisible = false;\r\n },\r\n\r\n showActionDialog(state, message)\r\n {\r\n state.isActionDialogVisible = true;\r\n state.actionMessage = message;\r\n },\r\n hideActionDialog(state)\r\n {\r\n state.isActionDialogVisible = false;\r\n },\r\n\r\n showPictureDialog(state, src)\r\n {\r\n state.isPictureDialogVisible = true;\r\n state.imgSrc = src;\r\n },\r\n hidePictureDialog(state)\r\n {\r\n state.isPictureDialogVisible = false;\r\n },\r\n setPictureDialogVisibility(state, val)\r\n {\r\n state.isPictureDialogVisible = val;\r\n }\r\n },\r\n actions:\r\n {\r\n\r\n },\r\n};\r\n\r\nexport default dialogModule;","\r\nimport TokenService from \"./token.service\";\r\nimport { RolesEnum } from '@/enums/RolesEnum';\r\n\r\nexport const userService = {\r\n login,\r\n logout,\r\n handleResponse,\r\n};\r\n\r\nfunction login(email, password) {\r\n\r\n return new Promise((resolve, reject) => {\r\n\r\n const request = {\r\n \"email\" : email,\r\n \"password\" : password\r\n }\r\n \r\n const requestOptions = {\r\n method: 'POST',\r\n headers: { 'Content-Type': 'application/json' },\r\n body: JSON.stringify(request)\r\n };\r\n \r\n return fetch(`${process.env.VUE_APP_BASE_URL}/authentication/login`, requestOptions)\r\n .then(handleResponse)\r\n .then(user => {\r\n // login successful if there's a jwt token in the response\r\n if (user.token) {\r\n // store user details and jwt token in local storage to keep user logged in between page refreshes\r\n let userCache = {\r\n token : user.token,\r\n userId : user.userId,\r\n refreshToken : user.refreshToken\r\n }\r\n \r\n let role = user.role;\r\n\r\n if (role == RolesEnum.Administrator)\r\n {\r\n userCache[\"rpKey\"] = TokenService.getRPKey(role);\r\n }\r\n\r\n TokenService.setUser(userCache);\r\n }\r\n resolve(user);\r\n return user;\r\n })\r\n .catch(error => reject(error))\r\n })\r\n \r\n \r\n}\r\n\r\nfunction logout() {\r\n // remove user from local storage to log user out\r\n TokenService.removeUser();\r\n}\r\n\r\nfunction handleResponse(response) {\r\n return response.text()\r\n .then(text => {\r\n if (!response.ok) {\r\n if (response.status === 401) {\r\n // auto logout if 401 response returned from api\r\n logout();\r\n location.reload(true);\r\n }\r\n\r\n return Promise.reject(text);\r\n }\r\n\r\n let data = text && JSON.parse(text);\r\n return data;\r\n });\r\n}","/* eslint-disable no-unused-vars */\r\nimport { userService, role } from '../../services';\r\nimport router from '@/router';\r\n\r\nconst user = JSON.parse(localStorage.getItem('user'));\r\nconst state = user\r\n ? { status: { loggedIn: true }, user, role: '' }\r\n : { status: {}, user: null, role: '' };\r\n\r\nconst actions = {\r\n login({ dispatch, commit }, {email, password, redirectPath}) {\r\n commit('loginRequest', { email });\r\n userService.login(email, password)\r\n .then(\r\n user => {\r\n commit('loginSuccess', user);\r\n\r\n // TODO: implement is admin flag\r\n const isAdmin = false;\r\n\r\n commit('authorizedModule/setAdmin', isAdmin, { root: true });\r\n router.push(redirectPath || '/dashboard')\r\n },\r\n error => {\r\n commit('dialog/showDialog', error, { root: true });\r\n commit('loginFailure', error);\r\n commit('authorizedModule/setAdmin', false, { root: true });\r\n dispatch('alert/error', error, { root: true });\r\n }\r\n );\r\n },\r\n logout({ commit }) {\r\n commit('authorizedModule/setAdmin', false, { root: true });\r\n userService.logout();\r\n router.push('/mijn-roadpursuit/login');\r\n commit('logout');\r\n },\r\n refreshToken({ commit }, accessToken) {\r\n commit('refreshToken', accessToken);\r\n },\r\n setRole({ commit }, role) {\r\n commit('setRole', role);\r\n }\r\n};\r\n\r\nconst mutations = {\r\n loginRequest(state, email) {\r\n state.status = { loggingIn: true };\r\n state.user = email;\r\n },\r\n loginSuccess(state, user) {\r\n state.status = { loggedIn: true };\r\n state.user = user;\r\n },\r\n loginFailure(state) {\r\n state.status = {};\r\n state.user = null;\r\n },\r\n logout(state) {\r\n state.status = {};\r\n state.user = null;\r\n },\r\n refreshToken(state, accessToken) {\r\n state.status.loggedIn = true;\r\n state.user = { ...state.user, accessToken: accessToken };\r\n },\r\n setRole(state, role) {\r\n state.role = role;\r\n }\r\n};\r\n\r\nexport const account = {\r\n namespaced: true,\r\n state,\r\n actions,\r\n mutations\r\n};","const state = {\r\n type: null,\r\n message: null\r\n};\r\n\r\nconst actions = {\r\n success({ commit }, message) {\r\n commit('success', message);\r\n },\r\n error({ commit }, message) {\r\n commit('error', message);\r\n },\r\n clear({ commit }) {\r\n commit('clear');\r\n }\r\n};\r\n\r\nconst mutations = {\r\n success(state, message) {\r\n state.type = 'alert-success';\r\n state.message = message;\r\n },\r\n error(state, message) {\r\n state.type = 'alert-danger';\r\n state.message = message;\r\n },\r\n clear(state) {\r\n state.type = null;\r\n state.message = null;\r\n }\r\n};\r\n\r\nexport const alert = {\r\n namespaced: true,\r\n state,\r\n actions,\r\n mutations\r\n};\r\n","import Vue from \"vue\";\r\nimport Vuex from \"vuex\";\r\n\r\nimport authorizedModule from './modules/authorized.module'\r\nimport roadtripModule from './modules/roadtrips.module';\r\nimport productModule from './modules/product.module';\r\nimport accountModule from \"./modules/account.module\";\r\nimport vehicleModule from \"./modules/vehicle.module\";\r\nimport supplierModule from \"./modules/supplier.module\";\r\nimport expenseModule from \"./modules/expense.module\";\r\nimport galleryModule from \"./modules/gallery.module\";\r\nimport reviewModule from \"./modules/roadtrip-review.module\";\r\nimport newsletterModule from \"./modules/newsletter.module\";\r\nimport storeModule from \"./modules/store.module\";\r\nimport menuHelper from \"./modules/menu-helper.module\";\r\nimport dialogModule from \"./modules/dialog.module\";\r\nimport { account } from './const/account';\r\nimport { alert } from './const/alert';\r\nimport api from '@/services/api';\r\n\r\nVue.use(Vuex);\r\n\r\nexport default new Vuex.Store({\r\n state:\r\n {\r\n isPilot: true, // Pilot version does not yet support facturen and single vehicle information.\r\n selectedYear: new Date().getFullYear(),\r\n showFooter: true\r\n },\r\n getters:\r\n {\r\n },\r\n mutations:\r\n {\r\n setFooterVisibility(state, value)\r\n {\r\n state.showFooter = value;\r\n }\r\n },\r\n actions:\r\n {\r\n getAccountInformation({commit, dispatch}, userId)\r\n {\r\n return new Promise((resolve, reject) => {\r\n dispatch('accountModule/getAccountOwnerBasePersoninfo', userId)\r\n .then((data) => {\r\n commit('accountModule/setAccountPersonInfo', data);\r\n\r\n dispatch('accountModule/getAddressFromAccountowner', userId)\r\n .then((data) => {\r\n commit('accountModule/setAccountAddress', data);\r\n resolve(data);\r\n });\r\n })\r\n .catch(error => {\r\n reject(error)\r\n })\r\n })\r\n },\r\n reset({dispatch})\r\n {\r\n dispatch('accountModule/reset');\r\n },\r\n // eslint-disable-next-line no-empty-pattern\r\n emailTrack({}, request)\r\n {\r\n return new Promise((resolve, reject) => {\r\n api.get(`/Email/Track?accountId=${request.accountId}&redirect=${request.url}`)\r\n .then(response => {\r\n resolve(response.data);\r\n })\r\n .catch(error => reject(error.response.data))\r\n })\r\n }\r\n },\r\n modules:\r\n {\r\n roadtripModule: roadtripModule,\r\n productModule: productModule,\r\n authorizedModule: authorizedModule,\r\n accountModule: accountModule,\r\n vehicleModule: vehicleModule,\r\n supplierModule: supplierModule,\r\n expenseModule: expenseModule,\r\n galleryModule: galleryModule,\r\n reviewModule: reviewModule,\r\n newsletterModule: newsletterModule,\r\n storeModule: storeModule,\r\n menuHelper: menuHelper,\r\n dialog: dialogModule,\r\n alert,\r\n account\r\n }\r\n});","import store from \"@/store\";\r\nexport const kalender = [\r\n {\r\n path: `/kalender`,\r\n name: `Roadtrips in ${store.state.selectedYear}`,\r\n isMenu: true,\r\n requiresRoleCheck: true,\r\n component: () =>\r\n import(\"@/views/kalender/Kalender.vue\"),\r\n },\r\n {\r\n path: `/kalender/:trip`, // {trip-name}-{day-month-year}\r\n name: `Roadtrip (Store)`,\r\n requiresRoleCheck: true,\r\n component: () =>\r\n import(\"@/views/kalender/RoadtripStore.vue\"),\r\n },\r\n {\r\n path: `/kalender/:trip/aanmelden`, // {trip-name}-{day-month-year}/aanmelden\r\n name: `Roadtrip (Aanmelden)`,\r\n component: () =>\r\n import(\"@/views/kalender/RoadtripAanmelden.vue\"),\r\n },\r\n {\r\n path: `/kalender/:trip/aanmelden/gast`, // {trip-name}-{day-month-year}/aanmelden/gast\r\n name: `Roadtrip (Aanmelden - Gast)`,\r\n component: () =>\r\n import(\"@/views/kalender/RoadtripAanmeldenGast.vue\"),\r\n },\r\n {\r\n path: `/kalender/:trip/aanmelden/nieuw-account`, // {trip-name}-{day-month-year}/aanmelden/nieuw-account\r\n name: `Roadtrip (Aanmelden - Nieuw Account)`,\r\n component: () =>\r\n import(\"@/views/kalender/RoadtripAanmeldenNieuwAccount.vue\"),\r\n },\r\n];","export const admin = [\r\n {\r\n path: \"/dashboard/roadtrips/toevoegen\",\r\n name: \"RoadtripNieuw\",\r\n requiresPrimaryUser: true,\r\n component: () => import(\"@/views/admin/Roadtrip(Nieuw).vue\"),\r\n },\r\n {\r\n path: \"/dashboard/roadtrips/:id\",\r\n name: \"RoadtripBestaand\",\r\n requiresPrimaryUser: true,\r\n component: () => import(\"@/views/admin/Roadtrip(Bestaand).vue\"),\r\n },\r\n {\r\n path: \"/dashboard/roadtrips/wijzigen/:id\",\r\n name: \"RoadtripBestaandWijzigen\",\r\n requiresPrimaryUser: true,\r\n component: () => import(\"@/views/admin/Roadtrip(Bestaand)Wijzigen.vue\"),\r\n },\r\n {\r\n // the trip is auto-selected in the dropdown if given\r\n path: \"/dashboard/roadtrips/:trip/nieuwe-factuur\", // /{trip-name}-{day-month-year}\r\n name: \"Nieuwe Factuur - Roadtrip\",\r\n requiresPrimaryUser: true,\r\n component: () => import(\"@/views/admin/NieuweFactuur.vue\"),\r\n },\r\n {\r\n path: \"/dashboard/roadtrips/kies-trip/nieuwe-factuur\",\r\n name: \"Nieuwe Factuur\",\r\n requiresPrimaryUser: true,\r\n component: () => import(\"@/views/admin/NieuweFactuur.vue\"),\r\n },\r\n {\r\n path: \"/dashboard/financien\",\r\n name: \"FinanciĆ«n\",\r\n requiresPrimaryUser: true,\r\n component: () => import(\"@/views/admin/FinanciĆ«n.vue\"),\r\n },\r\n {\r\n path: \"/dashboard/accounts\",\r\n name: \"Accounts\",\r\n requiresPrimaryUser: true,\r\n component: () => import(\"@/views/admin/Accounts.vue\"),\r\n },\r\n {\r\n path: \"/dashboard/accounts/:accountId\",\r\n name: \"Accountgegevens\",\r\n requiresPrimaryUser: true,\r\n component: () => import(\"@/views/admin/Accountgegevens.vue\"),\r\n },\r\n {\r\n path: \"/dashboard/voertuigen\",\r\n name: \"Voertuigen\",\r\n requiresPrimaryUser: true,\r\n component: () => import(\"@/views/admin/Voertuigen.vue\"),\r\n },\r\n\r\n {\r\n path: \"/dashboard/leverancieren\",\r\n name: \"Leverancieren\",\r\n requiresPrimaryUser: true,\r\n component: () => import(\"@/views/admin/Leverancieren.vue\"),\r\n },\r\n {\r\n path: \"/dashboard/leverancieren/toevoegen\",\r\n name: \"LeverancierenNieuw\",\r\n requiresPrimaryUser: true,\r\n component: () => import(\"@/views/admin/Leverancier(Nieuw).vue\"),\r\n },\r\n {\r\n path: \"/dashboard/leverancier/:accountId\",\r\n name: \"Leverancier\",\r\n requiresPrimaryUser: true,\r\n component: () => import(\"@/views/admin/Leverancier.vue\"),\r\n },\r\n];","export const galerijenreviews = [\r\n {\r\n path: \"/galerij\",\r\n name: \"Galerij en reviews\",\r\n isMenu: true,\r\n component: () =>\r\n import(\"@/views/galerijenreviews/GalerijEnReviews.vue\"),\r\n },\r\n {\r\n path: `/galerij/:make`,\r\n name: `Merk galerij`,\r\n component: () =>\r\n import(\"@/views/galerijenreviews/MerkGalerij.vue\"),\r\n },\r\n {\r\n path: `/galerij/:make/:trip`,\r\n name: `Trip galerij`,\r\n component: () =>\r\n import(\"@/views/galerijenreviews/TripGalerij.vue\"),\r\n },\r\n];","export const overons = [\r\n {\r\n path: \"/over-ons\",\r\n name: \"Over ons\",\r\n isMenu: true,\r\n component: () =>\r\n import(\"@/views/overons/OverOns.vue\"),\r\n },\r\n];","export const misc = [\r\n {\r\n path: \"/404\",\r\n name: \"404 - Not Found\",\r\n component: () => import(\"@/views/misc/404Page.vue\"),\r\n },\r\n {\r\n path: \"/401\",\r\n name: \"401 - Unauthorized\",\r\n component: () => import(\"@/views/misc/401Unauthorized.vue\"),\r\n },\r\n {\r\n path: \"/unsubscribe/:unsubscribeString\",\r\n name: \"Unsubscribe\",\r\n component: () => import(\"@/views/misc/Unsubscribe.vue\"),\r\n },\r\n {\r\n path: \"/verwijderen/:deletionString\",\r\n name: \"ConfirmAccountDeletion\",\r\n component: () => import(\"@/views/misc/ConfirmAccountDeletion.vue\"),\r\n },\r\n {\r\n path: \"/wachtwoord-wijzigen/:passwordChangeString\",\r\n name: \"Wachtwoord Wijzigen Link\",\r\n component: () => import(\"@/views/misc/WachtwoordWijzigen.vue\"),\r\n },\r\n {\r\n path: \"/redirect/:accountId/:url\",\r\n name: \"Redirect\",\r\n component: () => import(\"@/views/misc/Redirect.vue\"),\r\n },\r\n {\r\n path: \"/aanmelding/:orderId\",\r\n name: \"RoadtripAanmelding\",\r\n component: () => import(\"@/views/misc/RoadtripAanmelding.vue\"),\r\n },\r\n];","export const tripdaymanager = [\r\n {\r\n path: \"/roadtrip/scanqr/:orderId\",\r\n name: \"Check In\",\r\n isMenu: false,\r\n requiresRoleCheck: true,\r\n component: () =>\r\n import(\"@/views/tripdaymanager/CheckIn.vue\"),\r\n },\r\n {\r\n path: \"/tripday/statistics/:roadtripId\",\r\n name: \"Trip Day Statistics\",\r\n isMenu: false,\r\n requiresPrimaryUser: true,\r\n component: () =>\r\n import(\"@/views/tripdaymanager/TripDayStatistics.vue\"),\r\n },\r\n];","import Vue from \"vue\";\r\nimport VueRouter from \"vue-router\";\r\nimport TokenService from \"@/services/token.service\";\r\n\r\nimport { home } from './home';\r\nimport { account } from './account';\r\nimport { dashboard } from './dashboard';\r\nimport { kalender } from './kalender';\r\nimport { admin } from './admin';\r\nimport { galerijenreviews } from './galerijenreviews';\r\nimport { overons } from './overons';\r\nimport { misc } from './misc';\r\nimport { tripdaymanager } from './tripdaymanager';\r\n\r\n\r\nVue.use(VueRouter);\r\n\r\nconst routes = [\r\n // the default route, when none of the above matches:\r\n { path: \"*\", component: () => import(\"../views/misc/404Page.vue\") }\r\n];\r\n\r\nroutes.push(...home);\r\nroutes.push(...account);\r\nroutes.push(...dashboard);\r\nroutes.push(...kalender);\r\nroutes.push(...admin);\r\nroutes.push(...galerijenreviews);\r\nroutes.push(...overons);\r\nroutes.push(...misc);\r\nroutes.push(...tripdaymanager);\r\n\r\nconst router = new VueRouter({\r\n mode: \"history\",\r\n base: process.env.BASE_URL,\r\n routes\r\n});\r\n\r\nrouter.beforeEach((to, from, next) => \r\n{\r\n let view = document.querySelector('.content-wrapper');\r\n if (view)\r\n {\r\n view.scrollIntoView({behavior: 'auto', block: 'start', inline: 'start'});\r\n }\r\n\r\n const loggedIn = localStorage.getItem('user');\r\n let currentRoute = routes.find(x => x.name == to.name);\r\n let requiresAuth = currentRoute && currentRoute.requiresAuth;\r\n let requiresPrimaryUser = currentRoute && currentRoute.requiresPrimaryUser;\r\n let requiresRoleCheck = currentRoute && currentRoute.requiresRoleCheck;\r\n let isAdmin = false;\r\n\r\n if(loggedIn)\r\n {\r\n const userId = JSON.parse(loggedIn)[\"userId\"];\r\n\r\n if (requiresRoleCheck || requiresPrimaryUser)\r\n {\r\n router.app.$store.dispatch('accountModule/isPrimaryUser', userId)\r\n .then(data => {\r\n isAdmin = data && TokenService.isAdmin();\r\n router.app.$store.commit('authorizedModule/setAdmin', isAdmin);\r\n\r\n if (requiresPrimaryUser && isAdmin) {\r\n next();\r\n }\r\n })\r\n .finally(() => {\r\n\r\n if (requiresPrimaryUser && !isAdmin) {\r\n // role not authorised so redirect to 404 page\r\n return next('/404');\r\n }\r\n })\r\n }\r\n // check if userId is still valid\r\n router.app.$store.dispatch('accountModule/isAccountOwnerValid', userId)\r\n .then(data => {\r\n router.app.$store.state.account.status.loggedIn = data;\r\n if(data)\r\n {\r\n router.app.$store.commit('authorizedModule/setUserId', userId);\r\n }\r\n else\r\n {\r\n router.app.$store.commit('authorizedModule/setUserId', '');\r\n TokenService.removeUser();\r\n return next('/mijn-roadpursuit/login');\r\n }\r\n })\r\n }\r\n else\r\n {\r\n router.app.$store.dispatch('reset');\r\n }\r\n\r\n // redirect to login page if not logged in and trying to access a restricted page\r\n if (requiresAuth && !loggedIn) {\r\n return next('/mijn-roadpursuit/login');\r\n }\r\n\r\n // check if route is restricted by role\r\n if(requiresPrimaryUser && !loggedIn)\r\n {\r\n return next('/404');\r\n }\r\n\r\n if(!requiresPrimaryUser)\r\n {\r\n next();\r\n }\r\n})\r\n\r\n\r\nexport default router;","import Vue from 'vue';\r\nimport Vuetify from 'vuetify';\r\nimport { TiptapVuetifyPlugin } from 'tiptap-vuetify'\r\n\r\n// import CSS styles\r\nimport 'tiptap-vuetify/dist/main.css'\r\nimport 'vuetify/dist/vuetify.min.css'\r\n\r\n\r\n// Vuetify Object (as described in the Vuetify 2 documentation)\r\nconst vuetify = new Vuetify({\r\n icons: \r\n {\r\n iconfont: 'mdi',\r\n },\r\n theme: { \r\n themes: {\r\n dark: {\r\n primary: '#0071E3',\r\n secondary: '#b0bec5',\r\n accent: '#8c9eff',\r\n error: '#b71c1c',\r\n },\r\n },\r\n \r\n dark: true \r\n },\r\n options: {\r\n customProperties: true\r\n }\r\n});\r\n\r\n// use Vuetify's plugin\r\nVue.use(Vuetify)\r\n// use this package's plugin\r\nVue.use(TiptapVuetifyPlugin, {\r\n vuetify,\r\n iconsGroup: 'mdi'\r\n})\r\n\r\nexport default vuetify;\r\n","import axiosInstance from \"./api\";\r\nimport TokenService from \"./token.service\";\r\nimport axios from \"axios\";\r\nimport router from \"@/router\";\r\n\r\nconst setup = (store) => {\r\n axiosInstance.interceptors.request.use(\r\n (config) => {\r\n const token = TokenService.getLocalAccessToken();\r\n if (token) {\r\n config.headers[\"Authorization\"] = 'Bearer ' + token;\r\n }\r\n return config;\r\n },\r\n error => {\r\n Promise.reject(error)\r\n }\r\n );\r\n const interceptor = axiosInstance.interceptors.response.use(\r\n response => response,\r\n error => {\r\n const originalConfig = error.config;\r\n // Reject promise if usual error\r\n if (error.response && error.response.status !== 401) {\r\n return Promise.reject(error);\r\n }\r\n\r\n // When response code is 401, try to refresh the token.\r\n // Eject the interceptor so it doesn't loop in case\r\n // token refresh causes the 401 response\r\n axios.interceptors.response.eject(interceptor);\r\n\r\n if(!originalConfig._retry)\r\n {\r\n originalConfig._retry = true;\r\n return axios.post('/Authentication/RefreshToken', {\r\n Token: TokenService.getLocalRefreshToken()\r\n }).then(response => {\r\n store.dispatch('account/refreshToken', response.data.token);\r\n TokenService.updateLocalAccessToken(response.data.token);\r\n originalConfig.headers['Authorization'] = 'Bearer ' + response.data.token;\r\n return axios(originalConfig);\r\n }).catch(error => {\r\n if((error.response && error.response.status !== 401) && TokenService.getUser() != null)\r\n {\r\n store.dispatch('accountModule/revokeToken', { token: TokenService.getLocalRefreshToken()});\r\n store.commit('authorizedModule/setUserId', '');\r\n TokenService.removeUser();\r\n router.push('/mijn-roadpursuit/login');\r\n }\r\n return Promise.reject(error);\r\n }).finally(setup);\r\n }\r\n\r\n \r\n });\r\n};\r\nexport default setup;","import Vue from \"vue\";\r\nimport App from \"./App.vue\";\r\nimport router from \"./router\";\r\nimport vuetify from \"./plugins/vuetify\";\r\nimport axios from \"axios\";\r\nimport VueAxios from \"vue-axios\";\r\nimport Vuex from 'vuex';\r\nimport VueMeta from 'vue-meta'\r\nimport store from \"./store\";\r\nimport setupInterceptors from './services/setupInterceptors';\r\nVue.use(Vuex);\r\nVue.use(VueMeta);\r\nsetupInterceptors(store);\r\n\r\nVue.prototype.$API = process.env.VUE_APP_BASE_URL;\r\naxios.defaults.baseURL = Vue.prototype.$API;\r\nVue.use(VueAxios, axios);\r\n\r\nif (process.env.NODE_ENV === 'production') {\r\n Vue.config.devtools = false\r\n Vue.config.productionTip = false\r\n} \r\nrequire('@/assets/styles/main.css')\r\nrequire('@/assets/styles/darktheme.css')\r\n\r\nnew Vue({\r\n vuetify,\r\n store,\r\n router,\r\n render: h => h(App)\r\n}).$mount('#app')\r\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Menu.vue?vue&type=style&index=0&id=43d41df4&prod&lang=css&\"","module.exports = __webpack_public_path__ + \"img/Instagram_Icon.4178cb0d.svg\";","export default {\r\n methods: \r\n {\r\n // Home\r\n goToHome()\r\n {\r\n this.goto(`/`);\r\n },\r\n\r\n // Account\r\n goToLoginOnly()\r\n {\r\n this.goto(`/mijn-roadpursuit/login`);\r\n },\r\n goToLogin(redirectPath)\r\n {\r\n this.gotoAndRedirect(`Login`, redirectPath);\r\n },\r\n goToChangePassword()\r\n {\r\n this.goto(`/mijn-roadpursuit/wachtwoord-wijzigen`);\r\n },\r\n\r\n // Dashboard\r\n goToMyDashboard()\r\n {\r\n this.goto(`/dashboard`);\r\n },\r\n goToAccount()\r\n {\r\n this.goto(`/dashboard/account`);\r\n },\r\n gotoDeleteAccount()\r\n {\r\n this.goto(`/dashboard/account/verwijderen`);\r\n },\r\n goToUpComingTrip(trip, date)\r\n {\r\n const title = this.getTitleFormat(trip, date);\r\n this.goto(`/dashboard/aankomend/${title}`);\r\n },\r\n goToUpComingTripWijzigen(title)\r\n {\r\n this.goto(`/dashboard/aankomend/${title}/wijzigen`);\r\n },\r\n goToAllPastTrips()\r\n {\r\n this.goto(`/dashboard/afgelopen`);\r\n },\r\n goToPastTrip(trip, date)\r\n {\r\n const title = this.getTitleFormat(trip, date);\r\n this.goto(`/dashboard/afgelopen/${title}`);\r\n },\r\n\r\n // Admin \r\n goToNewRoadtrip()\r\n {\r\n this.goto(`/dashboard/roadtrips/toevoegen`);\r\n },\r\n goToRoadtrip(id)\r\n {\r\n this.goto(`/dashboard/roadtrips/${id}`);\r\n },\r\n goToRoadtripWijzigen(id)\r\n {\r\n this.goto(`/dashboard/roadtrips/wijzigen/${id}`);\r\n },\r\n goToNewInvoice()\r\n {\r\n this.goto(`/dashboard/roadtrips/kies-trip/nieuwe-factuur`);\r\n },\r\n goToRoadtripNewInvoice(trip, date)\r\n {\r\n const title = this.getTitleFormat(trip, date);\r\n this.goto(`/dashboard/roadtrips/${title}/nieuwe-factuur`);\r\n },\r\n goToFinances()\r\n {\r\n this.goto(`/dashboard/financien`);\r\n },\r\n goToAccounts()\r\n {\r\n this.goto(`/dashboard/accounts`);\r\n },\r\n goToAccountId(accountId)\r\n {\r\n this.goto(`/dashboard/accounts/${accountId}`);\r\n },\r\n goToCar(carId)\r\n {\r\n this.goto(`/dashboard/voertuigen/${carId}`);\r\n },\r\n goToCars()\r\n {\r\n this.goto(`/dashboard/voertuigen`);\r\n },\r\n goToSuppliers()\r\n {\r\n this.goto(`/dashboard/leverancieren`);\r\n },\r\n goToNewSupplier()\r\n {\r\n this.goto(`/dashboard/leverancieren/toevoegen`);\r\n },\r\n goToSupplierId(accountId)\r\n {\r\n this.goto(`/dashboard/leverancier/${accountId}`);\r\n },\r\n\r\n // Galerij\r\n goToGalleryAndReviews()\r\n {\r\n this.goto(`/galerij`);\r\n },\r\n goToGallery(title)\r\n {\r\n this.goto(`/galerij/${title.toLowerCase()}`);\r\n },\r\n goToGalleryTrip(make, trip, date)\r\n {\r\n const title = this.getTitleFormat(trip, date);\r\n this.goto(`/galerij/${make.toLowerCase()}/${title}`);\r\n },\r\n\r\n // Kalender\r\n goToMainCalendar()\r\n {\r\n this.goto(`/kalender`);\r\n },\r\n goToCalendar(trip, date)\r\n {\r\n const title = this.getTitleFormat(trip, date);\r\n this.goto(`/kalender/${title}`);\r\n },\r\n goToRoadtripAanmelden(trip, date)\r\n {\r\n const title = this.getTitleFormat(trip, date);\r\n this.goto(`/kalender/${title}/aanmelden`);\r\n },\r\n goToRoadtripAanmeldenGuest(trip, date)\r\n {\r\n const title = this.getTitleFormat(trip, date);\r\n this.goto(`/kalender/${title}/aanmelden/gast`);\r\n },\r\n goToRoadtripAanmeldenNewAccount(trip, date)\r\n {\r\n const title = this.getTitleFormat(trip, date);\r\n this.goto(`/kalender/${title}/aanmelden/nieuw-account`);\r\n },\r\n\r\n // trip day \r\n goToTripStatistics(roadtripId)\r\n {\r\n this.goto(`/tripday/statistics/${roadtripId}`);\r\n },\r\n goToCheckinPage(orderId)\r\n {\r\n this.goto(`/roadtrip/scanqr/${orderId}`);\r\n },\r\n\r\n goToAboutUs()\r\n {\r\n this.goto('/over-ons');\r\n },\r\n\r\n goto(path)\r\n {\r\n this.$router.push({ path: path });\r\n },\r\n gotoAndRedirect(path, redirectPath)\r\n {\r\n this.$router.push({ name: path, query: { redirect: redirectPath } });\r\n },\r\n getTitleFormat(trip, date)\r\n {\r\n return `${trip.replace(/\\s+/g, '-').toLowerCase()}-${date}`; //{trip-name}-{day-month-year}/\r\n }\r\n }\r\n}","export default {\r\n data: function ()\r\n {\r\n return {\r\n decimalSeparator: \",\",\r\n account_age_limit: 16\r\n }\r\n },\r\n methods: \r\n {\r\n getToday() {\r\n // Format: YYYY-MM-DD\r\n return (new Date(Date.now() - (new Date()).getTimezoneOffset() * 60000)).toISOString().substr(0, 10);\r\n },\r\n getCurrentYear()\r\n {\r\n return new Date().getFullYear();\r\n },\r\n getCurrentQuarter()\r\n {\r\n return Math.floor(new Date().getMonth() / 3 + 1);\r\n },\r\n getCurrentMonth()\r\n {\r\n const d = new Date();\r\n let month = d.getMonth();\r\n // returns the month (from 0 to 11)\r\n return month + 1;\r\n },\r\n formatDate (date) {\r\n if (!date) return null\r\n // Format: DD-MM-YYYY from input YYYY-MM-DD\r\n const [year, month, day] = date.split('-')\r\n return `${day}-${month}-${year}`\r\n },\r\n formatDateWithoutTime(date)\r\n {\r\n if (!date) return null;\r\n \r\n // return format DD-MM-YYYY\r\n date = this.getDateOnly(date);\r\n return this.formatDate(date);\r\n },\r\n getDateOnly(date)\r\n {\r\n // remove time information from input YYYY-MM-DDTHH:mm:ss\r\n if (!date) return null;\r\n // returns YYYY-MM-DD\r\n return date.substr(0, 10);\r\n },\r\n getYearOnly(date)\r\n {\r\n if (!date) return null;\r\n // returns YYYY\r\n return date.substr(0, 4);\r\n },\r\n getMonthOnly(date)\r\n {\r\n if (!date) return null;\r\n // returns MM from YYYY-MM\r\n return date.substr(5, 2);\r\n },\r\n getTimeOnly(date)\r\n {\r\n // get time information from input YYYY-MM-DDTHH:mm:ss\r\n if (!date) return null;\r\n // returns HH:mm\r\n return date.substr(11, 5);\r\n },\r\n minBirthdate() {\r\n return '1900-01-01';\r\n },\r\n maxBirthdate(ageLimit) {\r\n // Format: YYYY-MM-DD\r\n // minimum age should be 16 years old.\r\n const [year, month, day] = this.getToday().split('-');\r\n return `${year - ageLimit}-${month}-${day}`;\r\n },\r\n \r\n parseDate (date) {\r\n if (!date) return null\r\n \r\n const [day, month, year] = date.split('-') // return YYYY-MM-DD\r\n return `${year}-${month.padStart(2, '0')}-${day.padStart(2, '0')}`\r\n },\r\n formatDayMonth(date)\r\n {\r\n if(date == undefined) return date;\r\n \r\n // e.g. 13 september\r\n const d = new Date(date);\r\n const [,, day] = date.split('-')\r\n return `${day} ${d.toLocaleString('nl', { month: 'long' })}`;\r\n },\r\n formatDayMonthYear(date)\r\n {\r\n if(date == undefined) return date;\r\n\r\n // e.g. 14 juli, 2018\r\n const d = new Date(date);\r\n const [year,, day] = date.split('-')\r\n return `${day} ${d.toLocaleString('nl', { month: 'long' })}, ${year}`;\r\n },\r\n addDays(date, days)\r\n {\r\n var newDate = new Date(new Date(date).setDate(new Date(date).getDate() + days));\r\n return newDate.toISOString().substr(0, 10);\r\n },\r\n\r\n // currency\r\n getCurrency(amount)\r\n {\r\n if(amount == undefined) return '';\r\n \r\n return (amount).toLocaleString('nl-NL', {\r\n style: 'currency',\r\n currency: 'EUR',\r\n })\r\n },\r\n getLocalNumericDisplay(input)\r\n {\r\n const defaultEmpty = input == 0 ? \"0\" : \"\";\r\n return input ? input.toString().replace('.', this.decimalSeparator) : defaultEmpty;\r\n },\r\n localParseFloat(input)\r\n {\r\n let num = input.replace(this.decimalSeparator, \".\");\r\n\r\n // Now it can be parsed\r\n return this.convertToNullableFloat(num);\r\n },\r\n convertToNullableFloat(num)\r\n {\r\n let number = parseFloat(num);\r\n if(isNaN(number))\r\n {\r\n return null; // prevent parsing errors to nullable decimal.\r\n }\r\n\r\n return number;\r\n },\r\n\r\n getPersonInitials(firstname, lastname)\r\n {\r\n const names = lastname.split(' ');\r\n return `${firstname.charAt(0)}${names[names.length - 1].charAt(0)}`;\r\n },\r\n }\r\n}","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Footer.vue?vue&type=style&index=0&id=010574e2&prod&lang=css&\"","module.exports = __webpack_public_path__ + \"img/facebook-logo.7283f29b.svg\";","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--7-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--7-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--7-oneOf-1-2!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&id=4f8bb9f0&prod&lang=css&\""],"sourceRoot":""}