{"version":3,"sources":["webpack://[name]/./src/scripts/components/general/elements/inputfield.js","webpack://[name]/./src/scripts/components/general/elements/suggestlist.js","webpack://[name]/./src/scripts/components/general/map-leaflet.js","webpack://[name]/./src/scripts/components/general/overview-grid/advanced-search.js","webpack://[name]/./src/scripts/components/general/overview-grid/grid.js","webpack://[name]/./src/scripts/components/general/overview-grid/overview.js","webpack://[name]/./src/scripts/components/general/overview-grid/pagination.js","webpack://[name]/./src/scripts/components/general/overview-grid/quick-search.js","webpack://[name]/./src/scripts/components/general/overview-grid/sorting.js","webpack://[name]/./src/scripts/components/general/readableids/servicepointsfilter.js","webpack://[name]/./src/scripts/components/general/tabmanager.js","webpack://[name]/./src/scripts/components/orders/overview/advanced-search.js","webpack://[name]/./src/scripts/components/orders/overview/cancelorder-modal.js","webpack://[name]/./src/scripts/components/orders/overview/exportfailure-modal.js","webpack://[name]/./src/scripts/components/orders/overview/grid.js","webpack://[name]/./src/scripts/components/orders/overview/routeassignment-modal.js","webpack://[name]/./src/scripts/components/servicepoints/backofficetab.js","webpack://[name]/./src/scripts/components/servicepoints/detailtab.js","webpack://[name]/./src/scripts/utils.js","webpack://[name]/./src/scripts/components/servicepoints/estimationstab.js","webpack://[name]/./src/scripts/setup.js","webpack://[name]/./src/scripts/components/servicepoints/inventorytab.js","webpack://[name]/./src/scripts/components/servicepoints/stock/resourcestock.js","webpack://[name]/./src/scripts/components/servicepoints/stock/piececollectionresourcestock.js","webpack://[name]/./src/scripts/components/servicepoints/pickupdetailtab.js","webpack://[name]/./src/scripts/mixins/urlParameters.js","webpack://[name]/./src/scripts/components/contracts/contractDetail.js","webpack://[name]/./src/scripts/components/contracts/contractOverview.js","webpack://[name]/./src/scripts/components/general/elements/style.js","webpack://[name]/./src/scripts/components/navigation/shortcuts.js","webpack://[name]/./src/scripts/components/orders/detail/orderDetail.js","webpack://[name]/./src/scripts/components/orders/overview/orderoverview.js","webpack://[name]/./src/scripts/components/quiz/quiz.js","webpack://[name]/./src/scripts/components/servicepoints/stock/stockmanager.js","webpack://[name]/./src/scripts/components/servicepoints/servicepointedit.js","webpack://[name]/./src/scripts/components/servicepoints/servicepointsearch.js","webpack://[name]/./src/scripts/components/servicepoints/waste-type-size-finder.js","webpack://[name]/./src/scripts/components/statements/statementFileOverview.js","webpack://[name]/./src/scripts/components/statements/statementQuestions.js","webpack://[name]/./src/scripts/components/general/tab.js","webpack://[name]/./src/scripts/enums/servicepoints/inventorytransactiontype.js","webpack://[name]/./src/scss/master.scss","webpack://[name]/./node_modules/moment/locale sync [\\/\\\\](nl(\\.js)","webpack://[name]/./src/scripts sync ^\\.\\/.*$","webpack://[name]/./src/scripts/helpers/formhelpers.js","webpack://[name]/./src/scripts/components/general/overview-grid/sortdirection.js","webpack://[name]/./src/scripts/enums/system/executionstatus.js","webpack://[name]/./src/scripts/components/general/elements/selectlist.js","webpack://[name]/./src/scripts/components/general/readableids/readableidsfilter.js","webpack://[name]/./src/scripts/components/servicepoints/readeableids/outsourcersfilter.js","webpack://[name]/./src/scripts/utils/tracking.js","webpack://[name]/./src/scripts/constants/map-constants.js","webpack://[name]/./src/scripts/components/general/elements/daterange.js","webpack://[name]/./src/scripts/components/general/elements/dropdownlist.js"],"names":["__webpack_require__","r","__webpack_exports__","vue__WEBPACK_IMPORTED_MODULE_0__","Vue","component","template","props","type","String","default","value","disabled","Boolean","id","Number","settings","Object","computed","inputId","this","concat","_uid","methods","isSelected","item","watch","val","window","$","$refs","select","trigger","mounted","_this","select2","ajax","url","actionUrl","dataType","delay","data","params","searchTerm","term","minimumInputLength","language","document","documentElement","lang","placeholder","allowClear","theme","on","event","$emit","target","updated","use","VueMq","breakpoints","sm","md","lg","Infinity","mapCenter","currentMarkers","defaultCenter","zoomLevel","zoomLevelSet","renderMap","location","map","L","center","latLng","zoomControl","zoom","scrollWheelZoom","$isEmbedded","control","position","addTo","fullscreen","tileLayer","mapTileUrl","mapTileSettings","addEventListener","debounce","$root","onMapChanged","getZoom","e","px","project","_popup","_latlng","y","_container","clientHeight","panTo","unproject","animate","layerGroup","getBounds","getMapCenter","getCenter","showInfoWindow","servicePoint","servicePointAddressNumber","address","number","suffix","getElementById","popup","offset","minWidth","setLatLng","lat","lon","setContent","banner","innerHTML","name","street","filter","join","postalCode","city","municipalityServicePoint","translates","municipalityDisclaimer","municipalities","additionalInfo","returnHere","wasteTypes","wt","allowed","wasteType","title","routeLocation","reportFeedback","openOn","centerMap","$mq","undefined","setView","setZoom","clearMarkers","clearLayers","resetCluster","addMarker","marker","push","clusterGroup","markerClusterGroup","showCoverageOnHover","zoomToBoundsOnClick","iconCreateFunction","cluster","divIcon","html","getChildCount","className","iconSize","point","iconAnchor","showMarkers","markers","_this2","length","forEach","addLayer","created","$urlParameters","has","parseInt","get","inject","advancedSearch","queryParameters","resources","columns","Array","rows","loadingRows","axe","Function","components","pagination","Pagination","quicksearch","QuickSearch","baseUrl","defaultSearchParameters","searchParameters","feedbackMessage","paginationSettings","axios","create","baseURL","paramsSerializer","qs","stringify","indices","allowDots","skipNulls","cancelToken","CancelToken","cancelTokenSource","totalRecordCount","totalPageCount","assign","lastQueryParameters","loadingPaginationData","actions","buildActions","performSearch","cancel","source","getQueryParameters","getLastQueryParameters","getGridData","shouldGetGridData","getPaginationData","shouldGetPaginationData","applyAdvancedSearch","activeAdvancedSearch","pageNumber","resetAdvancedSearch","performQuickSearch","toggleAdvancedSearch","visible","keyword","sortDirection","sortField","pageSize","isEqual","requestParameters","parameters","token","then","response","_this$rows","splice","apply","_toConsumableArray","catch","thrown","isCancel","console","log","message","One","helpers","lastParameters","clearParametersForPaginationData","displayFeedback","notify","icon","provide","vuejs_paginate__WEBPACK_IMPORTED_MODULE_1__","vuejs_paginate__WEBPACK_IMPORTED_MODULE_1___default","n","paginate","Paginate","previousPageText","nextPageText","resultsFrom","resultsTo","Math","min","_elements_selectlist__WEBPACK_IMPORTED_MODULE_1__","formId","preventDefault","pageSizeUpdated","selectlist","SelectList","focus","_sortdirection__WEBPACK_IMPORTED_MODULE_1__","_sortdirection__WEBPACK_IMPORTED_MODULE_1___default","headerClass","column","sortable","SortDirection","Asc","Desc","setSortParameters","sortGridData","_readableidsfilter__WEBPACK_IMPORTED_MODULE_1__","axios__WEBPACK_IMPORTED_MODULE_2__","axios__WEBPACK_IMPORTED_MODULE_2___default","qs__WEBPACK_IMPORTED_MODULE_3__","qs__WEBPACK_IMPORTED_MODULE_3___default","debounce__WEBPACK_IMPORTED_MODULE_4__","debounce__WEBPACK_IMPORTED_MODULE_4___default","extends","BaseFilter","backofficeService","getFilterData","code","prefix","servicePointCode","ServicePointId","ServicePointName","currentTabComponent","currentTab","componentType","canMoveTab","getTabContentUri","getTab","index","tabs","getActiveTab","find","o","isActive","getNextTab","showTab","targetTab","isEnabled","moveToTab","isSaveButtonVisible","hasSaveOption","isPreviousButtonVisible","moveToPreviousTab","moveToNextTab","isNextButtonVisible","onTabSaveSuccess","showSuccessNotification","nextTab","pageMode","saveWithSuccessMessage","onTabSaveError","saveWithoutSuccessMessage","_general_overview_grid_advanced_search__WEBPACK_IMPORTED_MODULE_1__","_general_elements_daterange__WEBPACK_IMPORTED_MODULE_2__","_general_elements_dropdownlist__WEBPACK_IMPORTED_MODULE_3__","_general_elements_suggestlist__WEBPACK_IMPORTED_MODULE_4__","BaseAdvancedSearch","daterange","DateRange","dropdownlist","DropDownList","suggestlist","SuggestList","_enums_system_executionstatus__WEBPACK_IMPORTED_MODULE_1__","_enums_system_executionstatus__WEBPACK_IMPORTED_MODULE_1___default","orderId","orderCode","cancelAllowed","cutoffTimeReached","cancelOrder","status","ExecutionStatus","Success","href","redirectUrl","Message","canExport","exportUrl","moment__WEBPACK_IMPORTED_MODULE_0__","moment__WEBPACK_IMPORTED_MODULE_0___default","vue__WEBPACK_IMPORTED_MODULE_1__","_general_overview_grid_sorting__WEBPACK_IMPORTED_MODULE_2__","_general_overview_grid_grid__WEBPACK_IMPORTED_MODULE_3__","_routeassignment_modal__WEBPACK_IMPORTED_MODULE_4__","_cancelorder_modal__WEBPACK_IMPORTED_MODULE_5__","BaseGrid","sorting","Sorting","stateLabelClass","row","isBilled","isCancelled","formatDate","moment","ISO_8601","format","formatDateTime","defaultValue","routeAssignment","showRouteAssignmentModal","modalData","$modal","show","RouteAssignmentModal","requester","transporter","receiver","adaptive","height","maxWidth","showCancelOrderModal","CancelOrderModal","vue__WEBPACK_IMPORTED_MODULE_2__","_general_readableids_servicepointsfilter__WEBPACK_IMPORTED_MODULE_3__","_enums_system_executionstatus__WEBPACK_IMPORTED_MODULE_4__","_enums_system_executionstatus__WEBPACK_IMPORTED_MODULE_4___default","servicepointsfilter","ServicePointsFilter","routeAssignmentStatus","Unknown","routeAssignmentMessages","validationClass","assignRoute","transporterId","receiverId","messages","Tab","form","loadContent","servicePointId","$parent","renderTabContent","tabElem","initializeContent","error","_self","initializeForm","MyStichtingOpen","ServicePoints","initSsdsUpload","saveTab","formData","FormHelpers","post","ssdsUpload","SSDSUploadHtml","submitedWithSuccess","validator","validate","errorClass","errorElement","errorPlacement","el","addClass","parents","append","highlight","removeClass","success","remove","groups","collectionusertypes","rules","operations--servicepoint__name","required","operations--servicepoint__startdate","operations--servicepoint__contacts","operations--servicepoint__pickupaddress","operations--servicepoint__visitingaddress","operations--servicepoint__collectsfromconsumers","require_from_group","param","depends","element","operations--servicepoint__collectsfrombusiness","operations--servicepoint__serviceaccepttypes","addressId","servicePointRoleId","disabledFields","add","removeAttr","attr","spRoleId","Duplicated","onServicePointCreate","focusInvalid","keyup","Utils","businessCheckbox","informationField","checked","classList","Contacts","initContactPersonModal","Addresses","initAddressModal","searchEngine","_this3","$on","$destroy","beforeDestroy","removeEventListener","capitalizeTextBox","textBox","text","charAt","toUpperCase","slice","d","companyinfo--relation__collection--bigappl","companyinfo--relation__collection--smallappl","companyinfo--relation__collection--fluotubes","companyinfo--relation__collection--esaveledlamps","companyinfo--relation__collection--luminaires","companyinfo--relation__collection--batteries","companyinfo--relation__collection--mediumappl","DisableEstimation","prop","dateText","EstimationDate","useEstimations","initializeFoundation","initializeVue","initializeVueComponents","initializeModule","jquery__WEBPACK_IMPORTED_MODULE_0__","jquery__WEBPACK_IMPORTED_MODULE_0___default","Foundation","addToJquery","foundation","vueComponents","querySelectorAll","CustomEvent","i","moduleData","JSON","parse","getAttribute","$nextTick","dispatchEvent","moduleElements","initializeElementModule","elementId","result","options","manual","DEBUG","warn","Module","require","ResourceManager","StockManager","loading","collectionResourcesWastes","selected","unselected","pieceCollectionResourcesWastes","collectionResourcesStock","pieceCollectionResourcesStock","permissions","canEdit","sentences","put","selectedResources","selectedPieceCollections","resourcesStock","_objectSpread","notification","content","request","_this$collectionResou","_this$collectionResou2","_this$pieceCollection","_this$pieceCollection2","_this$collectionResou3","_this$pieceCollection3","inputfield","InputField","outsourcersfilter","OutsourcersFilter","disabledInputs","readonly","resource","resourceImage","fractionsList","array","uniq","fractions","x","editCollectionResource","stopPropagation","updateStock","_","oldAmount","amount","newAmount","changedAmount","validateStockUpdate","forecastAmount","$forceUpdate","callback","lodash_array__WEBPACK_IMPORTED_MODULE_1__","lodash_array__WEBPACK_IMPORTED_MODULE_1___default","_readeableids_outsourcersfilter__WEBPACK_IMPORTED_MODULE_2__","expanded","validateTab","validTab","checkMinimumOpeningHours","openingHours","URLSearchParams","search","isDownloadableContract","includes","contract","isParticipationAgreement","isGenerallyBindingStatementRequestLightRec","isParticipationAgreementWecycle","isBasicCollectionAgreement","agreedToAllTerms","terms","every","t","agreedTo","validationMessages","unagreedTerms","validationMessage","parsedFiles","files","f","dateTimeFormatted","dateTime","isBOuser","utils","isBoUser","removeAttachment","currentTarget","msg","confirm","findIndex","fileId","resp","HasErrors","finally","acceptAgreement","hasErrors","requestTermination","downloadContract","open","defaults","contractId","downloadExampleContract","downloadExampleContractTerm","key","optOut","openModal","modal","importFile","templateFileUrl","TemplateFileUrl","downloadTemplate","uploadFile","importContracts","FormData","render","createElement","$slots","MaskedInput","activeModal","keyMap","model","rawValue","shortcutIndex","activeShortcut","shortcuts","trim","rawModel","onkeydown","onkeyup","shortcut","isMatch","keys","setFocus","keyMatches","modalId","appendTo","input","_this4","parameter","action","RedirectUrl","targetLines","amountOfLines","totalWeight","handleClick","matches","dataset","divideWeight","closest","dividedWeights","w","divideTotalWeight","reset","_general_overview_grid_overview__WEBPACK_IMPORTED_MODULE_1__","_advanced_search__WEBPACK_IMPORTED_MODULE_2__","_grid__WEBPACK_IMPORTED_MODULE_3__","_exportfailure_modal__WEBPACK_IMPORTED_MODULE_4__","Overview","advancedsearch","AdvancedSearch","grid","Grid","export","onclick","exportOrders","paginationData","openExportModal","showExportModal","canExportOrdersData","ExportFailureModal","extend","email","vueVimeoPlayer","ValidationProvider","ValidationObserver","questionIndex","userResponses","started","maxScore","retrievingPostal","finished","videos","images","videoIndex","videoPosition","autoplayNotAllowed","submission","emailAddress","questions","fill","calculateMaxScore","preloadImages","isMobile","validPostal","RegExp","test","navigator","userAgent","start","getServicePoints","updateVideo","scrollToTop","restart","toggleOption","answer","indexOf","arr","set","optionIsSelected","questionAnswered","question","next","score","prev","scrollTo","top","behavior","Image","src","q","answers","isCorrect","newIndex","arguments","player","pause","playerLoaded","play","playerEnded","playerError","playerPlay","shuffle","j","floor","random","_ref","onSubmit","newResponses","oldResponses","reduce","acc","resourcestock","ResourceStock","piececollectionresourcestock","PieceCollectionResourceStock","collectionResourcesWastesListSettings","createWasteSelectOptions","pieceCollectionResourcesWastesListSettings","getResourceStock","collectionResource","getPieceCollectionResourceStock","createWasteSelectOption","waste","createWasteSelectOptionText","fraction","subFraction","productName","wastes","sort","wasteCollectionSort","defaultOption","createSelectDefaultOption","wasteOptions","items","createResourceStock","outsourcer","pleaseSelectWaste","selectedCollectionWasteCombination","wasteCombinationId","unselectedWastes","selectedWastes","resourceStock","resourceStockSort","removeCollectionWasteCombination","fractionIndex","selectedPieceCollectionWasteCombination","removePieceCollectionWasteCombination","resourceA","resourceB","localeCompare","wasteA","wasteB","product","TabManager","detail","DetailTab","pickupdetail","PickupDetailTab","estimations","EstimationsTab","inventory","InventoryTab","backoffice","BackofficeTab","previousButtonText","saveButtonText","nextButtonText","submitTab","activeTabComponent","leaflet-map","mapLeaflet","isSearching","selectedIndex","results","radiusDistance","mapInitialized","resultListIsOpen","showFilters","showPanel","selectedUserType","newValue","selectedWasteTypes","selectedWasteTypeIndex","transformMapBounds","mapBounds","SouthWest","Latitude","getSouth","Longitude","getWest","NorthEast","getNorth","getEast","transformMapCenter","lng","buildSearchParameters","Address","RadiusDistance","UserType","WasteTypes","MapBound","Location","buildMarker","showServicePointInfo","unHighlightServicePointInfo","_icon","highlightServicePointInfo","popUp","mapcomponent","openFeedbackModal","_closeButton","downloadSSDSFile","hasSSDSFile","FileDownload","sSDSFileName","closePopup","c","resultItems","searchByAddress","retrieveMapCenter","searchByCurrentLocation","getCurrentLocation","coords","latitude","longitude","errorMessage","onSuccessHandler","onFailureHandler","geolocation","getCurrentPosition","maximumAge","_this5","openWasteTypeInfoModal","openProfessionalDeviceModal","feedbackModal","servicePointName","grecaptcha","sitekey","Abide","validators","parent","validFiles","each","acceptedFileType","inArray","size","toFixed","feedbackForm","liveValidate","validateOnBlur","getResponse","headers","Content-Type","replaceWith","subjectType","subject","SubjectTypeId","empty","anonymousFeedback","optionalInputs","optionalLabels","toggle","fileInput","label","nextElementSibling","labelVal","fileName","replace","split","pop","Autocomplete","products","inputValue","toLowerCase","startsWith","getResultValue","resetContentBlocks","supermarket","electronica","megastores","milieustraat","hide","updateContentBlocks","onSelectSize","isGeneric","TrackEvent","hitType","eventCategory","eventAction","eventLabel","submit","returnCleanCategory","documents","api","getAllDocuments","accept","rejectModal","uploadModal","isAuditorsReportRequiredForStatement","isZeroStatement","requiresAuditorsReport","allowedToUpload","approvedFilesAuditorsReports","Status","Type","approvedFilesManagementStatement","allowedToProceed","isExportOpen","parsedDocuments","DateTimeFormatted","DateTime","updateDocumentsState","statementId","Id","method","done","bind","onAddDocumentButtonClick","onAddDocumentModal","Html","initFileUpload","maxFileSize","acceptedFileTypes","submitHandler","onAddDocumentModalSubmit","_iteratorNormalCompletion","_didIteratorError","_iteratorError","_step","_iterator","entries","Symbol","iterator","_step$value","_slicedToArray","err","return","enctype","processData","contentType","cache","File","markDocumentStatus","documentId","statusCode","onRejectDocumentClick","onRejectDocumentModal","onRejectDocumentModalSubmit","_iteratorNormalCompletion2","_didIteratorError2","_iteratorError2","_step2","_iterator2","_step2$value","onAcceptDocumentClick","onAcceptDocumentResponse","IntersectionObserver","entry","isIntersecting","observe","$el","loaded","selectedQuestions","availableQuestions","previouslySubmitted","questionTypes","radio","checkbox","getQuestions","validateZeroStatement","toggleSubmitBtn","toString","isArray","postQuestions","getNextQuestion","previousQuestion","nextQuestionId","nextQuestion","some","a","validateQuestion","currentQuestion","currentQuestionIndex","secondNextQuestion","panelCssClass","module","exports","Order","Manual","hmr","transform","insertInto","locals","./nl","./nl.js","webpackContext","req","webpackContextResolve","Error","resolve","./components/contracts/contractDetail","./components/contracts/contractDetail.js","./components/contracts/contractOverview","./components/contracts/contractOverview.js","./components/general/elements/daterange","./components/general/elements/daterange.js","./components/general/elements/dropdownlist","./components/general/elements/dropdownlist.js","./components/general/elements/inputfield","./components/general/elements/inputfield.js","./components/general/elements/selectlist","./components/general/elements/selectlist.js","./components/general/elements/style","./components/general/elements/style.js","./components/general/elements/suggestlist","./components/general/elements/suggestlist.js","./components/general/map-leaflet","./components/general/map-leaflet.js","./components/general/overview-grid/advanced-search","./components/general/overview-grid/advanced-search.js","./components/general/overview-grid/grid","./components/general/overview-grid/grid.js","./components/general/overview-grid/overview","./components/general/overview-grid/overview.js","./components/general/overview-grid/pagination","./components/general/overview-grid/pagination.js","./components/general/overview-grid/quick-search","./components/general/overview-grid/quick-search.js","./components/general/overview-grid/sortdirection","./components/general/overview-grid/sortdirection.js","./components/general/overview-grid/sorting","./components/general/overview-grid/sorting.js","./components/general/readableids/readableidsfilter","./components/general/readableids/readableidsfilter.js","./components/general/readableids/servicepointsfilter","./components/general/readableids/servicepointsfilter.js","./components/general/tab","./components/general/tab.js","./components/general/tabmanager","./components/general/tabmanager.js","./components/navigation/shortcuts","./components/navigation/shortcuts.js","./components/orders/detail/orderDetail","./components/orders/detail/orderDetail.js","./components/orders/overview/advanced-search","./components/orders/overview/advanced-search.js","./components/orders/overview/cancelorder-modal","./components/orders/overview/cancelorder-modal.js","./components/orders/overview/exportfailure-modal","./components/orders/overview/exportfailure-modal.js","./components/orders/overview/grid","./components/orders/overview/grid.js","./components/orders/overview/orderoverview","./components/orders/overview/orderoverview.js","./components/orders/overview/routeassignment-modal","./components/orders/overview/routeassignment-modal.js","./components/quiz/quiz","./components/quiz/quiz.js","./components/servicepoints/backofficetab","./components/servicepoints/backofficetab.js","./components/servicepoints/detailtab","./components/servicepoints/detailtab.js","./components/servicepoints/estimationstab","./components/servicepoints/estimationstab.js","./components/servicepoints/inventorytab","./components/servicepoints/inventorytab.js","./components/servicepoints/pickupdetailtab","./components/servicepoints/pickupdetailtab.js","./components/servicepoints/readeableids/outsourcersfilter","./components/servicepoints/readeableids/outsourcersfilter.js","./components/servicepoints/servicepointedit","./components/servicepoints/servicepointedit.js","./components/servicepoints/servicepointsearch","./components/servicepoints/servicepointsearch.js","./components/servicepoints/stock/piececollectionresourcestock","./components/servicepoints/stock/piececollectionresourcestock.js","./components/servicepoints/stock/resourcestock","./components/servicepoints/stock/resourcestock.js","./components/servicepoints/stock/stockmanager","./components/servicepoints/stock/stockmanager.js","./components/servicepoints/waste-type-size-finder","./components/servicepoints/waste-type-size-finder.js","./components/statements/statementFileOverview","./components/statements/statementFileOverview.js","./components/statements/statementQuestions","./components/statements/statementQuestions.js","./constants/map-constants","./constants/map-constants.js","./enums/servicepoints/inventorytransactiontype","./enums/servicepoints/inventorytransactiontype.js","./enums/system/executionstatus","./enums/system/executionstatus.js","./helpers/formhelpers","./helpers/formhelpers.js","./mixins/urlParameters","./mixins/urlParameters.js","./setup","./setup.js","./utils","./utils.js","./utils/tracking","./utils/tracking.js","getFormData","serialize","Failure","classes","update","inputGroupClass","validationErrors","validationErrorsClass","description","isFormField","outsourcersService","ga","tracker","getAll","mapIcon","leaflet__WEBPACK_IMPORTED_MODULE_0__","leaflet__WEBPACK_IMPORTED_MODULE_0___default","MapTilerApiKey","tileSize","zoomOffset","minZoom","attribution","crossOrigin","dateFrom","dateTo","fromId","toId","date","parseDate","getFromDate","isValid","startOf","toISOString","getToDate","endOf","getDatePickerFormatPattern","localeData","_longDateFormat","formatPattern","datepicker","weekStart","autoclose","todayHighlight","clearBtn","width","selectStyle"],"mappings":"4FAAAA,EAAAC,EAAAC,GAAA,IAAAC,EAAAH,EAAA,GAEeI,cAAIC,UAAU,aAAc,CACvCC,SAAQ,6IAGRC,MAAM,CACFC,KAAM,CACFA,KAAMC,OACNC,QAAS,QAEbC,MAAO,CACHD,QAAS,IAEbE,SAAU,CACNJ,KAAMK,QACNH,SAAS,4ECdNN,cAAIC,UAAU,cAAe,CACxCC,SAAQ,0eAWRC,MAAM,CACFO,GAAI,CACAN,KAAMC,OACNC,QAAS,MAEbC,MAAO,CACHH,KAAM,CAACC,OAAQM,QACfL,QAAS,MAEbM,SAAU,CACNR,KAAMS,OACNP,QAAS,OAGjBQ,SAAS,CACLC,QADK,WAED,OAAmB,OAAZC,KAAKN,GAAL,UAAAO,OAA6BD,KAAKN,IAAlC,UAAAO,OAAmDD,KAAKE,QAGvEC,QAAQ,CACJC,WADI,SACOC,GACP,OAAOA,EAAKX,KAAOM,KAAKT,QAGhCe,MAAO,CACHf,MADG,SACGgB,GACFC,OAAOC,EAAET,KAAKU,MAAMC,QAAQJ,IAAIA,GAAKK,QAAQ,oBAGrDC,QAzCwC,WAyC/B,IAAAC,EAAAd,KACLQ,OAAOC,EAAET,KAAKU,MAAMC,QACfI,QAAQ,CACLC,KAAM,CACFC,IAAKjB,KAAKJ,SAASsB,UACnBC,SAAU,OACVC,MAAO,IACPC,KAAM,SAAUC,GACZ,MAAO,CACHC,WAAYD,EAAOE,QAI/BC,mBAAoB,EACpBC,SAAUC,SAASC,gBAAgBC,KACnCC,YAAc9B,KAAKJ,SAASkC,YAC5BC,YAAY,EACZC,MAAO,cAEVC,GAAG,kCAAmC,SAAAC,GACnCpB,EAAKqB,MAAM,eAAgB1B,EAAEyB,EAAME,QAAQ7B,OAAS,SAGhE8B,QAhEwC,WAiEpC7B,OAAOC,EAAET,KAAKU,MAAMC,QAAQJ,IAAIP,KAAKT,OAAOqB,QAAQ,kKC3D5D5B,IAAIsD,IAAIC,IAAO,CACXC,YAAa,CACTC,GAAI,IACJC,GAAI,KACJC,GAAIC,OAIG5D,cAAIC,UAAU,cAAe,CACxCC,SAAQ,0EAGRC,MAAO,CACH0D,UAAWhD,QAEfwB,KAAM,WACF,MAAO,CACHyB,eAAgB,GAChBC,cAAe,CAAC,QAAS,QACzBC,UAAW,EACXC,cAAc,IAGtB9C,QAAS,CACL+C,UADK,SACKC,GAAU,IAAArC,EAAAd,KAGhBA,KAAKoD,IAAMC,IAAED,IAAI,aAAc,CAC3BE,OAAQD,IAAEE,OAAOJ,GACjBK,aAAa,EACbC,KAAMzD,KAAKgD,UACXU,iBAAkB1D,KAAK2D,cAI3BN,IAAEO,QAAQH,KAAK,CACXI,SAAU,gBACXC,MAAM9D,KAAKoD,KAEVpD,KAAK2D,aAELN,IAAEO,QAAQG,WAAW,CACjBF,SAAU,gBACXC,MAAM9D,KAAKoD,KAIlBC,IAAEW,UAAUC,aAAYC,mBAAiBJ,MAAM9D,KAAKoD,KAGpDpD,KAAKoD,IAAIe,iBAAiB,UAAWC,IAAS,WAC1CtD,EAAKuD,MAAMlC,MAAM,gBACjBrB,EAAKwD,gBACN,MAGHtE,KAAKoD,IAAIe,iBAAiB,UAAW,WACjCrD,EAAKuD,MAAMlC,MAAM,gBACjBrB,EAAKkC,UAAYlC,EAAKsC,IAAImB,YAI9BvE,KAAKoD,IAAInB,GAAG,YAAa,SAASuC,GAC9B,IAAIC,EAAKzE,KAAK0E,QAAQF,EAAEpC,OAAOuC,OAAOC,SACtCH,EAAGI,GAAKL,EAAEpC,OAAOuC,OAAOG,WAAWC,aAAa,EAChD/E,KAAKgF,MAAMhF,KAAKiF,UAAUR,GAAI,CAACS,SAAS,MAI5ClF,KAAKmF,WAAa9B,IAAE8B,aAAarB,MAAM9D,KAAKoD,MAEhDkB,aAhDK,WAiDDtE,KAAKmC,MAAM,aAAcnC,KAAKoD,IAAIgC,cAEtCC,aAnDK,WAoDD,OAAOrF,KAAKoD,IAAIkC,aAEpBC,eAtDK,SAsDUC,GACX,IAAMC,EAA4B,CAACD,EAAaE,QAAQC,OAAQH,EAAaE,QAAQE,QAC5DjE,SAASkE,eAAe,sBAEjD,OAAOxC,IAAEyC,MAAM,CACXC,OAAQ,CAAC,GAAI,IACbC,SAAU,MAETC,UAAU,CAACT,EAAaU,IAAKV,EAAaW,MAC1CC,WAAW,WACR,IAAIC,EAAS1E,SAASkE,eAAe,eAAeS,UACpD,qKAAArG,OAEqCuF,EAAae,KAFlD,yDAAAtG,OAG4BuF,EAAaE,QAAQc,OAHjD,KAAAvG,OAG2DwF,EAA0BgB,OAAOhH,SAASiH,KAAK,KAH1G,MAAAzG,OAGmHuF,EAAaE,QAAQiB,WAHxI,KAAA1G,OAGsJuF,EAAaE,QAAQkB,KAH3K,kCAAA3G,OAIOuF,EAAaqB,yBAAb,0DAAA5G,OAAkGO,OAAOsG,WAAWC,uBAApH,KAAA9G,OAA8IuF,EAAawB,eAAeN,KAAK,MAA/K,QAA8L,GAJrM,8BAAAzG,OAKOuF,EAAayB,eAAb,0DAAAhH,OAAwFuF,EAAayB,eAArG,QAA4H,GALnI,mEAAAhH,OAM2CO,OAAOsG,WAAWI,WAN7D,gSAAAjH,OAYUuF,EAAa2B,WAAWV,OAAO,SAAAW,GAAE,OAAIA,EAAGC,UAASjE,IAAI,SAAUkE,GAC7D,MAAO,OAASA,EAAUC,MAAQ,UACnCb,KAAK,IAdhB,gPAAAzG,OAmBUuF,EAAa2B,WAAWV,OAAO,SAAAW,GAAE,OAAKA,EAAGC,UAASjE,IAAI,SAAUkE,GAC9D,MAAO,OAASA,EAAUC,MAAQ,UACnCb,KAAK,IArBhB,mHAAAzG,OAyBEoG,EAzBF,yPAAApG,OA4B8FuF,EAAaU,IA5B3G,KAAAjG,OA4BkHuF,EAAaW,IA5B/H,uBAAAlG,OA4BwJO,OAAOsG,WAAWU,cA5B1K,gPAAAvH,OA+B0FO,OAAOsG,WAAWW,eA/B5G,yEAmCHC,OAAO1H,KAAKoD,MAErBuE,UAtGK,SAsGKxE,EAAUH,GAEXG,QAAgC,IAAbA,IACpBA,EAAWnD,KAAK+C,eAIhBC,GAAahD,KAAKiD,aAClBjD,KAAKgD,UAAYA,EACG,OAAbhD,KAAK4H,IACZ5H,KAAKgD,UAAY,GAEjBhD,KAAKgD,UAAY,QAGJ6E,IAAb7H,KAAKoD,IACLpD,KAAKkD,UAAUC,GAEfnD,KAAKoD,IAAI0E,QAAQ3E,EAAUnD,KAAKgD,YAGxC8E,QA3HK,SA2HG3E,EAAUH,GACdhD,KAAKoD,IAAI0E,QAAQ3E,EAAUH,IAE/B+E,QA9HK,SA8HG/E,GACJhD,KAAKoD,IAAI2E,QAAQ/E,IAErBgF,aAjIK,WAmIDhI,KAAKmF,WAAW8C,cAChBjI,KAAKkI,eACLlI,KAAK8C,eAAiB,IAE1BqF,UAvIK,SAuIKC,GACNpI,KAAK8C,eAAeuF,KAAKD,IAE7BF,aA1IK,WA4IDlI,KAAKsI,aAAejF,IAAEkF,mBAAmB,CACrCC,qBAAqB,EACrBC,qBAAqB,EACrBC,mBAAoB,SAACC,GAEjB,OAAOtF,IAAEuF,QAAQ,CACbC,KAAMF,EAAQG,gBACdC,UAAW,6BACXC,SAAU3F,IAAE4F,MAAM,GAAI,IACtBC,WAAY,CAAC,GAAI,UAKjCC,YA1JK,SA0JOC,GAAS,IAAAC,EAAArJ,KACjBA,KAAKgI,eAEW,OAAZoB,GAAoBA,EAAQE,OAAS,IAErCF,EAAQG,QAAQ,SAAAnB,GACZiB,EAAKf,aAAakB,SAASpB,KAI/BpI,KAAKsI,aAAaxE,MAAM9D,KAAKmF,eAIzCsE,QAvLwC,WAwLhCzJ,KAAK0J,gBAAkB1J,KAAK0J,eAAeC,IAAI,eAC/C3J,KAAKgD,UAAY4G,SAAS5J,KAAK0J,eAAeG,IAAI,cAClD7J,KAAKiD,cAAe,IAG5BpC,QA7LwC,WA+LpCb,KAAKkD,UAAUlD,KAAK+C,eACpB/C,KAAKkI,oDChNbtJ,EAAAC,EAAAC,GAAA,IAAAC,EAAAH,EAAA,GAEeI,cAAIC,UAAU,kBAAmB,CAC5C6K,OAAQ,CACJ,gBACA,sBACA,uBAEJ3K,MAAM,CACF4K,eAAgBlK,OAChBmK,gBAAiBnK,OACjBoK,UAAWpK,4CCXnBjB,EAAAC,EAAAC,GAAA,IAAAC,EAAAH,EAAA,GAEeI,cAAIC,UAAU,OAAQ,CACjCE,MAAM,CACF+K,QAASC,MACTC,KAAMD,MACNE,YAAa5K,QACbwK,UAAWpK,OACXmK,gBAAiBnK,OACjByK,IAAKC,+gBCFEvL,cAAIC,UAAU,WAAY,CACrCC,SAAQ,o0DA4BRsL,WAAY,CACRC,WAAcC,UACdC,YAAeC,WAEnBzL,MAAM,CACFO,GAAIL,OACJwL,QAASxL,OACT6K,QAASC,MACTW,wBAAyBjL,OACzBkL,iBAAkBlL,OAClBoK,UAAWpK,OACXkK,eAAgBlK,OAChBmL,gBAAiB3L,OACjB4L,mBAAoBpL,QAExBwB,KAAM,WACF,MAAO,CACHiJ,IAAKY,IAAMC,OAAO,CACdC,QAASpL,KAAK6K,QACdQ,iBAAkB,SAAS/J,GACvB,OAAOgK,IAAGC,UAAUjK,EAAQ,CAAEkK,SAAS,EAAOC,WAAW,EAAMC,WAAW,OAGlFC,YAAaT,IAAMU,YACnBC,kBAAmB,KACnBpB,WAAY,CACRqB,iBAAkB,EAClBC,eAAgB,GAEpB3B,KAAK,GACLJ,gBAAiBnK,OAAOmM,OAAO,GAAKhM,KAAK+K,kBACzCkB,oBAAqB,KACrB5B,aAAa,EACb6B,uBAAuB,EACvBC,QAASnM,KAAKoM,iBAGtBjM,QAAQ,CACJkM,cADI,WAE8B,OAA3BrM,KAAK6L,mBACJ7L,KAAK6L,kBAAkBS,OAAO,+DAElCtM,KAAK6L,kBAAoB7L,KAAK2L,YAAYY,SAE1C,IAAIvC,EAAkBhK,KAAKwM,qBACvBP,EAAsBjM,KAAKyM,yBAC3BC,EAAe1M,KAAK2M,kBAAkB3C,EAAiBiC,GACvDW,EAAoB5M,KAAK6M,wBAAwB7C,EAAiBiC,GAEnES,GACC1M,KAAK0M,YAAY1C,GAGlB4C,GACC5M,KAAK4M,kBAAkB5C,IAG/B8C,oBApBI,WAqBA9M,KAAKgK,gBAAgB+C,sBAAuB,EAC5C/M,KAAKgK,gBAAgBgD,WAAa,EAClChN,KAAKqM,iBAETY,oBAzBI,WA0BApN,OAAOmM,OAAOhM,KAAKgK,gBAAiBhK,KAAK8K,yBAEzC9K,KAAKqM,iBAETa,mBA9BI,WA+BAlN,KAAKgK,gBAAgBgD,WAAa,EAClChN,KAAKqM,iBAETc,qBAlCI,WAmCAnN,KAAK+J,eAAeqD,SAAWpN,KAAK+J,eAAeqD,SAQvDZ,mBA3CI,WA4CA,OAAOxM,KAAKgK,gBAAgB+C,qBAAuBlN,OAAOmM,OAAO,GAAKhM,KAAKgK,iBAAmB,CACtFqD,QAAUrN,KAAKgK,gBAAgBqD,QAC/BC,cAAetN,KAAKgK,gBAAgBsD,cACpCC,UAAWvN,KAAKgK,gBAAgBuD,UAChCP,WAAYhN,KAAKgK,gBAAgBgD,WACjCQ,SAAUxN,KAAKgK,gBAAgBwD,WAG3Cf,uBApDI,WAqDA,OAAO5M,OAAOmM,OAAO,GAAKhM,KAAKiM,sBASnCU,kBA9DI,SA8Dc3C,EAAiBiC,GAC/B,OAAQwB,IAAQzD,EAAiBiC,IAOrCS,YAtEI,SAsEQ1C,GAAgB,IAAAlJ,EAAAd,KACpB0N,EAAoB7N,OAAOmM,OAAO,GAAKhC,GAE3ChK,KAAKqK,aAAc,EACnBrK,KAAKsK,IAAIT,IAAI,oBAAqB,CAC1BvI,OAAQ,CAAEqM,WAAYD,GACtB/B,YAAa3L,KAAK6L,kBAAkB+B,QACrCC,KAAK,SAACC,GAK2D,IAAAC,GAJhEjN,EAAKmL,oBAAsBjC,EAC3BlJ,EAAK+K,kBAAoB,KACzB/K,EAAKsJ,KAAK4D,OAAO,GAES,OAAvBF,EAASzM,KAAK+I,MAAiB0D,EAASzM,KAAK+I,KAAKd,OAAS,KAC1DyE,EAAAjN,EAAKsJ,MAAK4D,OAAVC,MAAAF,EAAA,CAAiB,EAAG,GAApB9N,OAAAiO,EAA0BJ,EAASzM,KAAK+I,UAE7C+D,MAAM,SAACC,GAEFlD,IAAMmD,SAASD,GACfE,QAAQC,IAAI,mBAAoBH,EAAOI,SAEvCF,QAAQC,IAAI,YAAaH,EAAOI,WAErCX,KAAK,WACJ/M,EAAKuJ,aAAc,EACnBoE,IAAIC,QAAQ,CAAC,yBAA0B,8BAUnD7B,wBAxGI,SAwGoB7C,EAAiBiC,GACrC,IAAI0B,EAAa9N,OAAOmM,OAAO,GAAKhC,GAChC2E,EAAiB9O,OAAOmM,OAAO,GAAKC,GAKxC,OAHAjM,KAAK4O,iCAAiCjB,GACtC3N,KAAK4O,iCAAiCD,IAE9BlB,IAAQE,EAAYgB,IAOhCC,iCAtHI,SAsH6BjB,UACtBA,EAAWX,kBACXW,EAAWL,qBACXK,EAAWJ,WAOtBX,kBAhII,SAgIc5C,GAAgB,IAAAX,EAAArJ,KAC9BA,KAAKkM,uBAAwB,EAC7BlM,KAAKsK,IAAIT,IAAI,0BAA2B,CAChCvI,OAAQ,CAAEqM,WAAY3D,GACtB2B,YAAa3L,KAAK6L,kBAAkB+B,QACrCC,KAAK,SAACC,GACLzE,EAAKoB,WAAWsB,eAAiB+B,EAASzM,KAAK0K,eAC/C1C,EAAKoB,WAAWqB,iBAAmBgC,EAASzM,KAAKyK,mBAClDqC,MAAM,SAACC,GAEFlD,IAAMmD,SAASD,GACfE,QAAQC,IAAI,mBAAoBH,EAAOI,SAEvCF,QAAQC,IAAI,YAAaH,EAAOI,WAErCX,KAAK,WACJxE,EAAK6C,uBAAwB,KAIzC2C,gBApJI,WAqJ4B,OAAzB7O,KAAKgL,iBAAqD,KAAzBhL,KAAKgL,iBACrCxK,OAAOC,EAAEqO,OAAO,CAAE1P,KAAM,UAAW2P,KAAM,mBAAoBP,QAASxO,KAAKgL,oBAIvFgE,QAAS,WACL,MAAO,CACH3C,cAAerM,KAAKqM,cACpBa,mBAAoBlN,KAAKkN,mBACzBJ,oBAAqB9M,KAAK8M,oBAC1BG,oBAAqBjN,KAAKiN,oBAC1BE,qBAAsBnN,KAAKmN,uBAGnC1D,QArOqC,WAsOjCzJ,KAAKqM,gBACLrM,KAAK6O,uDC9ObjQ,EAAAC,EAAAC,GAAA,IAAAC,EAAAH,EAAA,GAAAqQ,EAAArQ,EAAA,KAAAsQ,EAAAtQ,EAAAuQ,EAAAF,GAGejQ,cAAIC,UAAU,aAAc,CACvCC,SAAQ,+hDAkCRsL,WAAW,CACP4E,SAAYC,KAEhBvF,OAAQ,CACJ,iBAEJ3K,MAAM,CACFsL,WAAY5K,OACZmK,gBAAiBnK,OACjBoK,UAAWpK,OACXqM,sBAAuBzM,QACvB2K,KAAMD,OAEVrK,SAAU,CACNwP,iBADM,WAEF,MAAO,oCAEXC,aAJM,WAKF,MAAO,qCAEXC,YAPM,WAQF,OAAOxP,KAAKyK,WAAWqB,iBAAmB,GAAM9L,KAAKgK,gBAAgBgD,WAAa,GAAKhN,KAAKgK,gBAAgBwD,SAAY,EAAI,GAEhIiC,UAVM,WAWF,OAAOC,KAAKC,IAAI3P,KAAKgK,gBAAgBgD,WAAahN,KAAKgK,gBAAgBwD,SAAUxN,KAAKyK,WAAWqB,wDC9D7GlN,EAAAC,EAAAC,GAAA,IAAAC,EAAAH,EAAA,GAAAgR,EAAAhR,EAAA,IAGeI,cAAIC,UAAU,eAAgB,CACzCC,SAAQ,g3BAeR4K,OAAQ,CACJ,sBAEJ3K,MAAM,CACF6K,gBAAiBnK,OACjBoK,UAAWpK,OACXwK,YAAa5K,QACbwL,mBAAoBpL,OACpBiC,YAAa,CAAE1C,KAAMC,OAAQC,QAAS,WAE1CQ,SAAS,CACL+P,OADK,WAED,qBAAA5P,OAAsBD,KAAKE,QAGnCC,QAAQ,CACJwK,YADI,SACQzI,GACRA,EAAM4N,iBACN9P,KAAKkN,sBAET6C,gBALI,SAKYvC,GACZxN,KAAKgK,gBAAgBwD,SAAWA,EAChCxN,KAAKkN,uBAGb1C,WAAW,CACPwF,WAAcC,WAElBpP,QA5CyC,WA6CrCb,KAAKU,MAAM2M,QAAQ6C,6CChD3BtR,EAAAC,EAAAC,GAAA,IAAAC,EAAAH,EAAA,GAAAuR,EAAAvR,EAAA,IAAAwR,EAAAxR,EAAAuQ,EAAAgB,GAGenR,cAAIC,UAAU,UAAW,CACpCC,SAAQ,4NAOR4K,OAAQ,CACJ,iBAEJ3K,MAAM,CACF+K,QAASC,MACTH,gBAAiBnK,QAErBM,QAAQ,CACJkQ,YADI,SACQC,GACR,IAAGA,EAAOC,SAcN,MAAO,GAbP,IAAIhD,EAAYvN,KAAKgK,gBAAgBuD,UACjCD,EAAgBtN,KAAKgK,gBAAgBsD,cAEzC,OAAGgD,EAAO/C,YAAcA,EAOb,UANJD,IAAkBkD,IAAcC,IACxB,cACAnD,IAAkBkD,IAAcE,KAChC,oBADJ,GAUnBC,kBAnBI,SAmBcL,GACd,GAAGA,EAAOC,SAAS,CACf,IAAIhD,EAAYvN,KAAKgK,gBAAgBuD,UACjCD,EAAgBtN,KAAKgK,gBAAgBsD,cAEtCC,IAAc+C,EAAO/C,WACpBvN,KAAKgK,gBAAgBuD,UAAY+C,EAAO/C,UACxCvN,KAAKgK,gBAAgBsD,cAAgBkD,IAAcE,MAC7CpD,IAAkBkD,IAAcC,IACtCzQ,KAAKgK,gBAAgBsD,cAAgBkD,IAAcE,KAEnD1Q,KAAKgK,gBAAgBsD,cAAgBkD,IAAcC,MAI/DG,aAlCI,SAkCSN,GACTtQ,KAAK2Q,kBAAkBL,GACvBtQ,KAAKqM,sDCtDjBzN,EAAAC,EAAAC,GAAA,IAAAC,EAAAH,EAAA,GAAAiS,EAAAjS,EAAA,IAAAkS,EAAAlS,EAAA,GAAAmS,EAAAnS,EAAAuQ,EAAA2B,GAAAE,EAAApS,EAAA,IAAAqS,EAAArS,EAAAuQ,EAAA6B,GAAAE,EAAAtS,EAAA,IAAAuS,EAAAvS,EAAAuQ,EAAA+B,GAMelS,cAAIC,UAAU,sBAAuB,CAChDmS,QAASC,UACThQ,KAFgD,WAG5C,MAAO,CACHiQ,kBAAmBpG,IAAMC,OAAO,CAC5BC,QAAS,wBACTC,iBAAkB,SAAS/J,GACvB,OAAOgK,IAAGC,UAAUjK,EAAQ,CAAEkK,SAAS,EAAOC,WAAW,EAAMC,WAAW,SAK1FvL,QAAQ,CACJoR,cAAenN,IAAS,SAAUlC,GAAO,IAAApB,EAAAd,KACjCwR,EAA8B,OAAvBtP,EAAME,OAAO7C,MAAb,GAAAU,OAAiCD,KAAKyR,QAAtCxR,OAA+CiC,EAAME,OAAO7C,OAAU,GAEjFS,KAAKsR,kBAAkBzH,IAAI,kBAAmB,CACtCvI,OAAQ,CAAEoQ,iBAAkBF,KAC7B3D,KAAK,SAACC,GAELhN,EAAKqB,MAAM,QAAS2L,EAASzM,KAAKsQ,gBAClC7Q,EAAKqB,MAAM,cAAeD,EAAME,OAAO7C,OACvCuB,EAAKqB,MAAM,qBAAsB2L,EAASzM,KAAKuQ,oBAChDzD,MAAM,SAACC,GACNE,QAAQC,IAAI,YAAaH,EAAOI,YAEvC,kEC/BExP,cAAIC,UAAU,aAAc,CACvCC,SAAQ,k+DAoCRY,SAAS,CACL+R,oBAAqB,WACjB,YAA2BhK,IAApB7H,KAAK8R,WAA2B9R,KAAK8R,WAAWC,cAAgB,OAG/E5S,MAAM,CACF6S,WAAYzH,SACZ0H,iBAAkB1H,UAEtBpK,QAAQ,CACJ+R,OADI,SACGC,GACH,OAAOnS,KAAKoS,KAAKD,IAErBE,aAJI,WAKA,OAAOrS,KAAKoS,KAAKE,KAAK,SAAAC,GAAC,OAAIA,EAAEC,YAEjCC,WAPI,WAQA,OAAOzS,KAAKkS,OAAOlS,KAAK8R,WAAWK,MAAQ,IAE/CO,QAVI,SAUIC,GACDA,EAAUC,YACT5S,KAAK8R,WAAWU,UAAW,EAC3BxS,KAAK8R,WAAaa,EAClB3S,KAAK8R,WAAWU,UAAW,IAGnCK,UAjBI,SAiBM3Q,EAAOiQ,GACbjQ,EAAM4N,iBACN9P,KAAK0S,QAAQ1S,KAAKkS,OAAOC,KAE7BW,oBArBI,WAsBA,YAA2BjL,IAApB7H,KAAK8R,YAA4B9R,KAAK8R,WAAWiB,eAE5DC,wBAxBI,WAyBA,YAA2BnL,IAApB7H,KAAK8R,YAA4B9R,KAAK8R,WAAWK,MAAQ,GAEpEc,kBA3BI,WA4BAjT,KAAK0S,QAAQ1S,KAAKkS,OAAOlS,KAAK8R,WAAWK,MAAQ,KAErDe,cA9BI,WA+BAlT,KAAK0S,QAAQ1S,KAAKkS,OAAOlS,KAAK8R,WAAWK,MAAQ,KAErDgB,oBAjCI,WAkCA,YAAuBtL,IAApB7H,KAAK8R,YAA6B9R,KAAK8R,WAAWK,MAAQ,EAAKnS,KAAKoS,KAAK9I,QACjEtJ,KAAKkS,OAAOlS,KAAK8R,WAAWK,MAAQ,GAAGS,WAItDQ,iBAvCI,SAuCaC,GACb,IAAIC,EAAUtT,KAAKyS,kBAEJ5K,IAAZyL,GAA2C,IAAlBtT,KAAKuT,WAC7BD,EAAQV,WAAY,EACpB5S,KAAK0S,QAAQY,IAGdD,GACC5E,IAAIC,QAAQ,SAAU,CAAEtP,KAAM,UAAW2P,KAAM,mBAAoBP,QAASxO,KAAKiK,UAAUuJ,0BAGnGC,eAnDI,WAoDAhF,IAAIC,QAAQ,SAAU,CAAEtP,KAAM,SAAU2P,KAAM,kCAAmCP,QAASxO,KAAKiK,UAAUyJ,8BAGjH7S,QArGuC,aAwGvC4I,QAxGuC,iDCD3C7K,EAAAC,EAAAC,GAAA,IAAAC,EAAAH,EAAA,GAAA+U,EAAA/U,EAAA,KAAAgV,EAAAhV,EAAA,IAAAiV,EAAAjV,EAAA,IAAAkV,EAAAlV,EAAA,KAMeI,cAAIC,UAAU,kBAAmB,CAC5CmS,QAAS2C,UACT7U,SAAQ,i4FAgDRsL,WAAW,CACPwJ,UAAaC,UACbC,aAAgBC,UAChBC,YAAeC,+CC3DvBzV,EAAAC,EAAAC,GAAA,IAAAC,EAAAH,EAAA,GAAA0V,EAAA1V,EAAA,IAAA2V,EAAA3V,EAAAuQ,EAAAmF,GAGetV,cAAIC,UAAU,oBAAqB,CAC9CC,SAAQ,i3BAkBRC,MAAM,CACFoH,KAAMlH,OACNmP,QAASnP,OACTmV,QAASnV,OACToV,UAAWpV,OACXqV,cAAejV,QACfkV,kBAAmBlV,QACnBwK,UAAWpK,OACXyK,IAAKC,UAETpK,QAAQ,CACJyU,YADI,WACS,IAAA9T,EAAAd,KACL0N,EAAoB,CACpB8G,QAASxU,KAAKwU,QACdC,UAAWzU,KAAKyU,UAChBE,kBAAmB3U,KAAK2U,mBAG5B3U,KAAKsK,IAAIT,IAAI,eAAgB,CACzBvI,OAAQ,CAAEqM,WAAYD,KACvBG,KAAK,SAACC,GACFA,EAASzM,KAAKwT,SAAWC,IAAgBC,QACxCvU,OAAO2C,SAAS6R,KAAOlH,EAASzM,KAAK4T,aAErCnU,EAAKqB,MAAM,SACXsM,IAAIC,QAAQ,SAAU,CAAEtP,KAAM,SAAU2P,KAAM,kCAAmCP,QAASV,EAASzM,KAAK6T,aAE7G/G,MAAM,SAACC,GACNE,QAAQC,IAAI,YAAaH,EAAOI,iDClDhD5P,EAAAC,EAAAC,GAAA,IAAAC,EAAAH,EAAA,GAEeI,cAAIC,UAAU,sBAAuB,CAChDC,SAAQ,63BAkBRC,MAAM,CACFoH,KAAMlH,OACN8V,UAAW1V,QACX2V,UAAW,CAAEhW,KAAMC,OAAQC,QAAS,MACpC2K,UAAWpK,4CCzBnBjB,EAAAC,EAAAC,GAAA,IAAAuW,EAAAzW,EAAA,GAAA0W,EAAA1W,EAAAuQ,EAAAkG,GAAAE,EAAA3W,EAAA,GAAA4W,EAAA5W,EAAA,KAAA6W,EAAA7W,EAAA,KAAA8W,EAAA9W,EAAA,KAAA+W,EAAA/W,EAAA,KAOeI,cAAIC,UAAU,OAAQ,CACjCmS,QAASwE,UACT1W,SAAQ,o+HAmERsL,WAAW,CACPqL,QAAWC,WAEf3V,QAAQ,CACJ4V,gBADI,SACYC,GACZ,OAAGA,EAAIC,SACI,iCACRD,EAAIE,YACI,gCACJ,gCAEXC,WARI,SAQO5W,GACP,OAAgB,MAATA,GAA0BsI,MAATtI,EAAqB6W,IAAO7W,EAAO6W,IAAOC,UAAUC,OAAO,KAAO,IAE9FC,eAXI,SAWWhX,EAAOiX,GAClB,OAAgB,MAATjX,GAA0BsI,MAATtI,EAAqB6W,IAAO7W,EAAO6W,IAAOC,UAAUC,OAAO,mBAAqBE,GAE5GC,gBAdI,SAcYT,GAAI,IAAAlV,EAAAd,KAChBA,KAAKsK,IAAIT,IAAI,wBAAyB,CAClCvI,OAAQ,CAAE5B,GAAIsW,EAAIxB,WACnB3G,KAAK,SAACC,GACLhN,EAAK4V,yBAAyBV,EAAIxB,QAAS1G,EAASzM,QACrD8M,MAAM,SAACC,GAENE,QAAQC,IAAI,YAAaH,EAAOI,WACjCX,KAAK,eAIZ6I,yBA1BI,SA0BqBlC,EAASmC,GAC9B3W,KAAK4W,OAAOC,KAAKC,UAAsB,CACnCtC,QAASA,EACTjO,KAAM,kBACNwQ,UAAWJ,EAAUI,UACrBC,YAAaL,EAAUK,YACvBC,SAAUN,EAAUM,SACpBhN,UAAW0M,EAAU1M,UACrBK,IAAKtK,KAAKsK,KACX,CACC4M,UAAU,EACVC,OAAQ,OACRC,SAAU,OAGlBxC,YAzCI,SAyCQoB,GAAI,IAAA3M,EAAArJ,KACZA,KAAKsK,IAAIT,IAAI,oBAAqB,CAC9BvI,OAAQ,CAAE5B,GAAIsW,EAAIxB,WACnB3G,KAAK,SAACC,GACLzE,EAAKgO,qBAAqBvJ,EAASzM,QACpC8M,MAAM,SAACC,GAENE,QAAQC,IAAI,YAAaH,EAAOI,WACjCX,KAAK,eAIZwJ,qBArDI,SAqDiBV,GACjB3W,KAAK4W,OAAOC,KAAKS,UAAkB,CAC/B/Q,KAAM,cACNiI,QAASmI,EAAUnI,QACnBgG,QAASmC,EAAUnC,QACnBC,UAAWkC,EAAUlC,UACrBC,cAAeiC,EAAUjC,cACzBC,kBAAmBgC,EAAUhC,kBAC7B1K,UAAW0M,EAAU1M,UACrBK,IAAKtK,KAAKsK,KACX,CACC4M,UAAU,EACVC,OAAQ,OACRC,SAAU,4CCjJ1BxY,EAAAC,EAAAC,GAAAF,EAAA,GAAAA,EAAA,QAAA2Y,EAAA3Y,EAAA,GAAA4Y,EAAA5Y,EAAA,KAAA6Y,EAAA7Y,EAAA,IAAA8Y,EAAA9Y,EAAAuQ,EAAAsI,GAMezY,cAAIC,UAAU,wBAAyB,CAClDC,SAAQ,0pEAoCRsL,WAAW,CACPmN,oBAAuBC,WAE3BvW,KAxCkD,WAyC9C,MAAO,CACHwW,sBAAuB/C,IAAgBgD,QACvCC,wBAAyB,KAGjC5Y,MAAM,CACFqV,QAASnV,OACTkH,KAAMlH,OACN0X,UAAWlX,OACXmX,YAAanX,OACboX,SAAUpX,OACVoK,UAAWpK,OACXyK,IAAKC,UAETzK,SAAS,CACLkY,gBADK,WAED,OAAOhY,KAAK6X,wBAA0B/C,IAAgBC,QAAU,sBAAwB,uBAGhG5U,QAAQ,CACJ8X,YADI,SACQ/V,GAAM,IAAApB,EAAAd,KAEV0N,EAAoB,CACpB8G,QAASxU,KAAKwU,QACd0D,cAAelY,KAAKgX,YAAYzX,MAChC4Y,WAAYnY,KAAKiX,SAAS1X,OAG9BS,KAAKsK,IAAIT,IAAI,yBAA0B,CACnCvI,OAAQ,CAAEqM,WAAYD,KACvBG,KAAK,SAACC,GACFA,EAASzM,KAAKwT,SAAWC,IAAgBC,QACxCvU,OAAO2C,SAAS6R,KAAOlH,EAASzM,KAAK4T,aAErCnU,EAAK+W,sBAAwB/J,EAASzM,KAAKwT,OAC3C/T,EAAKiX,wBAA0BjK,EAASzM,KAAK+W,YAElDjK,MAAM,SAACC,GACNE,QAAQC,IAAI,YAAaH,EAAOI,qHChFjCxP,cAAIC,UAAU,gBAAiB,CAC1CmS,QAASiH,UACThX,KAAM,WACF,MAAO,CACHiJ,IAAKY,IAAMC,OAAO,CACdC,QAAS,4BAEbkN,KAAM,OAGdnY,QAAQ,CACJoY,YADI,WACS,IAAAzX,EAAAd,KACTA,KAAKwY,eAAiBxY,KAAKyY,QAAQD,eACnCxY,KAAKsK,IAAIT,IAAI,6BAA8B,CAAEvI,OAAQ,CAAEkX,eAAgBxY,KAAKwY,kBACvE3K,KAAK,SAACC,GAAe,OAAOhN,EAAK4X,iBAAiB5K,EAASzM,QAC3DwM,KAAK,SAAC8K,GAAc7X,EAAK8X,kBAAkBD,KAC3CxK,MAAM,SAAC0K,GAAYvK,QAAQC,IAAI,kCAAoCsK,MAE5ED,kBARI,SAQcD,GACd,IAAMG,EAAQ9Y,KACdA,KAAK+Y,eAAeJ,GACpBlK,IAAIC,QAAQ,CAAC,mCAAoC,YAEjDiK,EAAQrG,KAAK,oEAAoErQ,GAAG,SAAU,WAC1F6W,EAAMzU,MAAMlC,MAAM,sBAGtB6W,gBAAgBC,cAAcC,iBAC9BF,gBAAgBC,cAAcpS,4BAElCkS,eApBI,SAoBWJ,GACX3Y,KAAKsY,KAAOK,EAAQrG,KAAK,gCAE7B6G,QAvBI,WAuBK,IAAA9P,EAAArJ,KACDoZ,EAAWC,cAAwBrZ,KAAKsY,MAC5CtY,KAAKsK,IAAIgP,KAAK,0BAA2BF,GACxCvL,KAAK,SAACC,GACH,IAAIyL,EAAazL,EAASzM,KAAKmY,eACb,MAAdD,IAC2B9Y,EAAE,yBACRoI,KAAK0Q,GAC1BP,gBAAgBC,cAAcC,iBAC9BzK,IAAIC,QAAQ,2BAGhB,OAAO,IAEVb,KAAK,SAAC4L,GACAA,GAAsBpQ,EAAKlH,MAAM,UAAU,KAEjDgM,MAAM,SAAC0K,GACJvK,QAAQC,IAAI,6BAA+BsK,GAC3CxP,EAAKlH,MAAM,mBAIvBtB,QAxD0C,aA2D1C4I,QA3D0C,WA4DtCzJ,KAAKuY,wJC1DEvZ,cAAIC,UAAU,YAAa,CACtCmS,QAASiH,UACThX,KAAM,WACF,MAAO,CACHmX,eAAgB,KAChBlO,IAAKY,IAAMC,OAAO,CACdC,QAAS,4BAEbkN,KAAM,KACNoB,UAAW,OAGnBvZ,QAAQ,CAMJ4Y,eANI,SAMWJ,GACX3Y,KAAKsY,KAAOK,EAAQrG,KAAK,4BACzBtS,KAAK0Z,UAAY1Z,KAAKsY,KAAKqB,SAAS,CAChCC,WAAY,mCACZC,aAAc,MACdC,eAAgB,SAACjB,EAAOkB,GACpBtZ,EAAEsZ,GAAIC,SAAS,cACfvZ,EAAEsZ,GAAIE,QAAQ,eAAeC,OAAOrB,IAExCsB,UAAW,SAAAJ,GACPtZ,EAAEsZ,GAAIE,QAAQ,eAAe3H,KAAK,eAAe8H,YAAY,cAAcJ,SAAS,eAExFK,QAAS,SAAAN,GACLtZ,EAAEsZ,GAAIE,QAAQ,eAAe3H,KAAK,eAAe8H,YAAY,cAC7D3Z,EAAEsZ,GAAIO,UAEVC,OAAQ,CACJC,oBAAqB,kGAEzBC,MAAO,CACHC,iCAAkC,CAC9BC,UAAU,GAEdC,sCAAuC,CACnCD,UAAU,GAEdE,qCAAsC,CAClCF,UAAU,GAEdG,0CAA2C,CACvCH,UAAU,GAEdI,4CAA6C,CACzCJ,UAAU,GAEdK,kDAAmD,CAC/CC,mBAAoB,CAChBC,MAAO,CAAC,EAAG,kDACXC,QAAS,SAAUC,GACf,OAAI3a,EAAE,2EAA2E6I,OAAS,KAQtG+R,iDAAkD,CAC9CJ,mBAAoB,CAChBC,MAAO,CAAC,EAAG,kDACXC,QAAS,SAAUC,GACf,OAAI3a,EAAE,2EAA2E6I,OAAS,KAQtGgS,+CAAgD,CAC5CX,SAAU,CACNQ,QAAS,SAAUC,GACf,OAAI3a,EAAE,2EAA2E6I,OAAS,MAS1G8O,SAAU,CACN4C,kDAAmD,CAE/CC,mBAAoB,SAAU3Z,EAAQ8Z,GAClC,OAAO3a,EAAE2a,GAAS/Z,KAAK,4BAG/Bga,iDAAkD,CAE9CJ,mBAAoB,SAAU3Z,EAAQ8Z,GAClC,OAAO3a,EAAE2a,GAAS/Z,KAAK,gCAO3C8X,QA9FI,WA8FK,IAAArY,EAAAd,KACL,GAAIA,KAAK0Z,UAAUpB,OAAO,CACtB,IAAIiD,EAAY3R,SAASnJ,EAAE,4CAA4CF,OACnEib,EAAqB/a,EAAE,iBAAkBT,KAAKsY,MAAMjX,KAAK,YAAcZ,EAAE,iBAAkBT,KAAKsY,MAAM/X,MAGpGkb,EAAiBhb,EAAE,kBAAmBT,KAAKsY,MAAMoD,IAAI,mBAAmBC,WAAW,YAGrFvC,EAAWC,cAAwBrZ,KAAKsY,MAG5CmD,EAAeG,KAAK,WAAY,YAEhC5b,KAAKsK,IAAIT,IAAI,mCAAoC,CAAEvI,OAAO,CACtDia,UAAWA,EACXM,SAAUL,EACVhD,eAAgBxY,KAAKwY,kBAExB3K,KAAK,SAACC,GACAA,EAASzM,MAAQyM,EAASzM,KAAKya,YAAsC,OAAxBhb,EAAK0X,eACjD/J,IAAIC,QAAQ,SAAU,CAAEtP,KAAM,SAAU2P,KAAM,kCAAmCP,QAASV,EAASzM,KAAK6T,UAExGpU,EAAKwJ,IAAIgP,KAAK,sBAAuBF,GACpCvL,KAAK,SAACC,GACH,QAAGA,EAASzM,KAAKsQ,iBACb7Q,EAAK2X,QAAQsD,qBAAqBjO,EAASzM,KAAKsQ,iBACzC,KAId9D,KAAK,SAAC4L,GACAA,GAAsB3Y,EAAKqB,MAAM,UAAU,KAEjDgM,MAAM,SAAC0K,GACJvK,QAAQC,IAAI,6BAA+BsK,GAC3C/X,EAAKqB,MAAM,mBAItBgM,MAAM,SAAC0K,GACJvK,QAAQC,IAAI,6BAA+BsK,GAC3C/X,EAAKqB,MAAM,sBAGfnC,KAAK0Z,UAAUsC,gBAIvBpD,kBA/II,SA+IcD,GACd3Y,KAAK+Y,eAAeJ,GACpBlK,IAAIC,QAAQ,CAAC,yBAA0B,yBAA0B,oBAAqB,UAAW,aAAc,gBAAiB,YAAa,yBAG7IiK,EAAQrG,KAAK,mCAAmC2J,MAAM,WAClDC,oBAAwBzb,EAAET,SAG9B,IAAMmc,EAAmBxa,SAASkE,eAAe,kDAC7CsW,GACAA,EAAiBhY,iBAAiB,SAAU,SAACjC,GACzC,IAAMka,EAAmBza,SAASkE,eAAe,kBAC5CuW,IAGDla,EAAME,OAAOia,QACbD,EAAiBE,UAAUhC,OAAO,UAElC8B,EAAiBE,UAAUZ,IAAI,aAK3C1C,gBAAgBuD,SAASC,yBACzBxD,gBAAgByD,UAAUC,mBAC1B1D,gBAAgBC,cAAc0D,gBAGlCpE,YA5KI,WA4KS,IAAAlP,EAAArJ,KACTA,KAAKwY,eAAiBxY,KAAKyY,QAAQD,eACnCxY,KAAKsK,IAAIT,IAAI,0BAA2B,CAAEvI,OAAQ,CAAEkX,eAAgBxY,KAAKwY,kBACxE3K,KAAK,SAACC,GAAe,OAAOzE,EAAKqP,iBAAiB5K,EAASzM,QAC3DwM,KAAK,SAAC8K,GAActP,EAAKuP,kBAAkBD,KAC3CxK,MAAM,SAAC0K,GAAYvK,QAAQC,IAAI,kCAAoCsK,OAG5EpP,QAhMsC,WAgM5B,IAAAmT,EAAA5c,KACNA,KAAKuY,cAELvY,KAAKqE,MAAMwY,IAAI,mBAAoB,WAC/BD,EAAKE,cAGbC,cAvMsC,WAwMlC,IAAMZ,EAAmBxa,SAASkE,eAAe,kDAC7CsW,GACAA,EAAiBa,oBAAoB,gEC1M1C,SAASC,EAAkBC,GAUlC,IAAoBC,EAThBD,EAAQ3c,IAUY,iBADJ4c,EATOD,EAAQ3c,OAUM,GAC9B4c,EAAKC,OAAO,GAAGC,cAAgBF,EAAKG,MAAM,IAlBrD1e,EAAAC,EAAAC,GAAAF,EAAA2e,EAAAze,EAAA,sCAAAme,iHCKeje,cAAIC,UAAU,iBAAkB,CAC3CmS,QAASiH,UACThX,KAAM,WACF,MAAO,CACHiJ,IAAKY,IAAMC,OAAO,CACdC,QAAS,4BAEbkN,KAAM,KACNoB,UAAW,OAGnBvZ,QAAQ,CAMJ4Y,eANI,SAMWJ,GACX3Y,KAAKsY,KAAOK,EAAQrG,KAAK,0BACzBtS,KAAK0Z,UAAY1Z,KAAKsY,KAAKqB,SAAS,CAChCC,WAAY,mCACZC,aAAc,MACdC,eAAgB,SAACjB,EAAOkB,GACpBtZ,EAAEsZ,GAAIC,SAAS,cACfvZ,EAAEsZ,GAAIE,QAAQ,eAAeC,OAAOrB,IAExCsB,UAAW,SAAAJ,GACPtZ,EAAEsZ,GAAIE,QAAQ,eAAe3H,KAAK,eAAe8H,YAAY,cAAcJ,SAAS,eAExFK,QAAS,SAAAN,GACLtZ,EAAEsZ,GAAIE,QAAQ,eAAe3H,KAAK,eAAe8H,YAAY,cAC7D3Z,EAAEsZ,GAAIO,UAEVG,MAAO,CACH+C,6CAA8C,CAC1C7C,UAAU,GAEd8C,+CAAgD,CAC5C9C,UAAU,GAEd+C,+CAAgD,CAC5C/C,UAAU,GAEdgD,mDAAoD,CAChDhD,UAAU,GAEdiD,gDAAiD,CAC7CjD,UAAU,GAEdkD,+CAAgD,CAC5ClD,UAAU,GAEdmD,gDAAiD,CAC7CnD,UAAU,OAM1BxB,QAhDI,WAgDK,IAAArY,EAAAd,KACDoZ,EAAWC,cAAwBrZ,KAAKsY,MAC5CtY,KAAKsK,IAAIgP,KAAK,0BAA2BF,GACpCvL,KAAK,SAACC,GACH,GAAGA,EAASzM,KAAK0c,kBAAkB,CAC/Btd,EAAE,+CAA+Cud,KAAK,WAAY,YAClEvd,EAAE,iDAAiDud,KAAK,WAAY,YACpEvd,EAAE,iDAAiDud,KAAK,WAAY,YACpEvd,EAAE,qDAAqDud,KAAK,WAAY,YACxEvd,EAAE,kDAAkDud,KAAK,WAAY,YACrEvd,EAAE,iDAAiDud,KAAK,WAAY,YACpEvd,EAAE,kDAAkDud,KAAK,WAAY,YAGrE,IAAIC,EAAWxd,EAAE,uBAAuB6R,KAAK,6BAA6B6K,OAC1E1c,EAAE,uBAAuB2Z,YAAY,UAAU9H,KAAK,6BAA6B6K,KAAKc,EAAW,IAAMnQ,EAASzM,KAAK6c,gBACrHzd,EAAE,yBAAyBuZ,SAAS,UAExC,OAAO,IAEVnM,KAAK,SAAC4L,GACAA,GAAsB3Y,EAAKqB,MAAM,UAAU,KAEjDgM,MAAM,SAAC0K,GACJvK,QAAQC,IAAI,6BAA+BsK,GAC3C/X,EAAKqB,MAAM,kBAQvByW,kBAjFI,SAiFcD,GACd3Y,KAAK+Y,eAAeJ,GACpBlK,IAAIC,QAAQ,CAAC,yBAA0B,yBAA0B,UAAW,aAAc,gBAAiB,YAAa,yBAExHsK,gBAAgBC,cAAckF,kBAGlC5F,YAxFI,WAwFS,IAAAlP,EAAArJ,KACTA,KAAKwY,eAAiBxY,KAAKyY,QAAQD,eACnCxY,KAAKsK,IAAIT,IAAI,+BAAgC,CAAEvI,OAAQ,CAAEkX,eAAgBxY,KAAKwY,kBAC7E3K,KAAK,SAACC,GAAe,OAAOzE,EAAKqP,iBAAiB5K,EAASzM,QAC3DwM,KAAK,SAAC8K,GAActP,EAAKuP,kBAAkBD,KAC3CxK,MAAM,SAAC0K,GAAYvK,QAAQC,IAAI,kCAAoCsK,OAG5EpP,QA3G2C,WA4GvCzJ,KAAKuY,mEClHb3Z,EAAAC,EAAAC,GAAAF,EAAA2e,EAAAze,EAAA,yCAAAsf,IAAAxf,EAAA2e,EAAAze,EAAA,kCAAAuf,IAAAzf,EAAA2e,EAAAze,EAAA,4CAAAwf,IAAA1f,EAAA2e,EAAAze,EAAA,qCAAAyf,IAAA,IAAAC,EAAA5f,EAAA,GAAA6f,EAAA7f,EAAAuQ,EAAAqP,GAAAjJ,EAAA3W,EAAA,GAAAA,EAAA,KAIO,SAASwf,EAAqBM,GAEjCA,EAAWC,YAAYle,KAGvBA,IAAEkB,UAAUid,aAGT,SAASP,IACZ,IAAMQ,EAAgBld,SAASmd,iBAAiB,cAChD5c,EAAQ,IAAI6c,YAAY,cAExB,GAAIF,EAAcvV,OAAS,EACvB,IAAK,IAAI0V,EAAI,EAAGA,EAAIH,EAAcvV,OAAQ0V,IAAK,CAC3C,IAAI5D,EAAUyD,EAAcG,GACxBC,EAAaC,KAAKC,MAAM/D,EAAQgE,aAAa,yBAA2B,GAE5E,IAAIpgB,IAAI,CAAE+a,GAAIqB,EAAS/Z,KAAM4d,EAAWpe,QAAhC,WACJb,KAAKqf,UAAU,WACX1d,SAAS2d,cAAcpd,aAKnCP,SAAS2d,cAAcpd,GAKxB,SAASoc,IAGZ,IAFA,IAAMiB,EAAiB5d,SAASmd,iBAAiB,iBAExCE,EAAI,EAAGA,EAAIO,EAAejW,OAAQ0V,IAAK,CAI5C,IAFaQ,EADFD,EAAeP,IAItB,OASL,SAAST,EAAiBkB,GAC7B,OAAOD,EAAwB7d,SAASkE,eAAe4Z,IAO3D,SAASD,EAAwBzF,GAC7B,IAAI2F,GAAS,EACPnZ,EAAOwT,EAAGqF,aAAa,eACzBO,EAAU5F,EAAGqF,aAAa,uBAC1BQ,EAAS7F,EAAGqF,aAAa,uBAEhB,KAAT7Y,IACIsZ,OACAvR,QAAQwR,KAAK,QAAUvZ,EAAO,iCAElCmZ,GAAS,GAGVA,KACKR,KAAKC,MAAMQ,GAEXA,EAAUT,KAAKC,MAAMQ,GAEhB,MAAOA,GAERE,OACAvR,QAAQwR,KAAK,oCAAsCvZ,EAAO,qCAE9DmZ,GAAS,GAITC,EAAU,GAGTC,EAIDtR,QAAQC,IAAI,UAAYhI,EAAO,wCAF/B,IAAIwZ,EADWC,OAAQ,KAAA/f,OAAKsG,IAAQjH,SACzB,CAAEya,GAAIA,EAAK1Y,KAAMse,KAMpC,OAAOD,inBC1FI1gB,cAAIC,UAAU,eAAgB,CACzCC,SAAQ,4oBAURkS,QAASiH,UACT7N,WAAY,CACRyV,gBAAiB,kBACjBC,aAAc,gBAElB7e,KAAM,WACF,MAAO,CACHiJ,IAAKY,IAAMC,OAAO,CACdC,QAAS,4BACTC,iBAAkB,SAAS/J,GACvB,OAAOgK,IAAGC,UAAUjK,EAAQ,CAAEkK,SAAS,EAAOC,WAAW,EAAMC,WAAW,OAGlFyU,SAAS,EACT3H,eAAgB,GAChB4H,0BAA2B,CACvBC,SAAU,GACVC,WAAY,IAEhBC,+BAAiC,CAC7BF,SAAU,GACVC,WAAY,IAEhBE,yBAA0B,GAC1BC,8BAA+B,GAC/BC,YAAa,CACTC,SAAS,GAEbC,UAAU,KAGlBzgB,QAAQ,CACJgZ,QADI,WAEAnZ,KAAKsK,IAAIuW,IAAI,aAAc,CACvBrI,eAAgBxY,KAAKwY,eACrBsI,kBAAmB9gB,KAAKogB,0BAA0BC,SAClDU,yBAA0B/gB,KAAKugB,+BAA+BF,SAC9DW,eAAgBhhB,KAAKwgB,yBACrBC,8BAA+BzgB,KAAKygB,gCAEvC5S,KAAK,SAACC,GACHW,IAAIC,QAAQ,2UAAZuS,CAAA,GAA2BnT,EAASzM,KAAK6f,aAAzC,CAAuD1S,QAASV,EAASzM,KAAK6f,aAAaC,aAE9FhT,MAAM,SAAC0K,GAAYvK,QAAQC,IAAI,2BAA6BsK,KAE7D7Y,KAAKmC,MAAM,UAAU,IAEzBoW,YAhBI,WAgBS,IAAAzX,EAAAd,KACTA,KAAKwY,eAAiBxY,KAAKyY,QAAQD,eACnCxY,KAAKsK,IAAIT,IAAI,uBAAwB,CAAEvI,OAAQ,CAAE8f,QAAS,CAAE5I,eAAgBxY,KAAKwY,mBAC5E3K,KAAK,SAACC,GAAa,IAAAuT,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACZrgB,EAAOyM,EAASzM,MAEpBggB,EAAAvgB,EAAKsf,0BAA0BC,UAASrS,OAAxCC,MAAAoT,EAAA,CAA+C,EAAG,GAAlDphB,OAAAiO,EAAwD7M,EAAK+e,0BAA0BC,aACvFiB,EAAAxgB,EAAKsf,0BAA0BE,YAAWtS,OAA1CC,MAAAqT,EAAA,CAAiD,EAAG,GAApDrhB,OAAAiO,EAA0D7M,EAAK+e,0BAA0BE,eACzFiB,EAAAzgB,EAAKyf,+BAA+BF,UAASrS,OAA7CC,MAAAsT,EAAA,CAAoD,EAAG,GAAvDthB,OAAAiO,EAA6D7M,EAAKkf,+BAA+BF,aACjGmB,EAAA1gB,EAAKyf,+BAA+BD,YAAWtS,OAA/CC,MAAAuT,EAAA,CAAsD,EAAG,GAAzDvhB,OAAAiO,EAA+D7M,EAAKkf,+BAA+BD,eACnGmB,EAAA3gB,EAAK0f,0BAAyBxS,OAA9BC,MAAAwT,EAAA,CAAqC,EAAG,GAAxCxhB,OAAAiO,EAA8C7M,EAAKmf,6BACnDkB,EAAA5gB,EAAK2f,+BAA8BzS,OAAnCC,MAAAyT,EAAA,CAA0C,EAAG,GAA7CzhB,OAAAiO,EAAmD7M,EAAKof,iCACxD3f,EAAK4f,YAAYC,QAAUtf,EAAKqf,YAAYC,QAC5C7f,EAAK8f,UAAYvf,EAAKuf,YAEzBzS,MAAM,SAAC0K,GACJvK,QAAQC,IAAI,kCAAoCsK,KAEnDhL,KAAK,WACF/M,EAAKqf,SAAU,MAI/Btf,QAjFyC,aAoFzC4I,QApFyC,WAqFrCzJ,KAAKuY,+ICpFEvZ,cAAIC,UAAU,gBAAiB,CAC1CuL,WAAW,CACPmX,WAAcC,UACdC,kBAAqBC,WAEzB5iB,SAAQ,qsDAkCRmC,KAAM,WACF,MAAO,CACHiJ,IAAKY,IAAMC,OAAO,CACdC,QAAS,4BACTC,iBAAkB,SAAS/J,GACvB,OAAOgK,IAAGC,UAAUjK,EAAQ,CAAEkK,SAAS,EAAOC,WAAW,EAAMC,WAAW,OAGlFqW,eAAgB/hB,KAAKgiB,WAG7B7iB,MAAM,CACF8iB,SAAUpiB,OACVqiB,cAAe7iB,OACf2iB,SAAU,CAAE5iB,KAAMK,QAASH,SAAS,GACpCohB,YAAa7gB,QAEjBC,SAAU,CACNqiB,cADM,WAEF,OAAOC,IAAMC,KAAKriB,KAAKiiB,SAASK,UAAUlf,IAAI,SAAAmf,GAAC,OAAIA,EAAE/Q,UAG7DrR,QAAS,CACLqiB,uBADK,SACkBP,EAAU/f,GAC7BA,EAAMugB,kBACNziB,KAAK+hB,gBAAkB/hB,KAAK+hB,gBAEhCW,YAAaC,EAAEve,SAAS,SAASI,GAAG,IAAA1D,EAAAd,KAC1B4iB,EAAY5iB,KAAKiiB,SAASY,OAChCC,EAAYte,EAAEpC,OAAO7C,MACrBwjB,EAAgBD,EAAYF,EAE5B5iB,KAAKgjB,oBAAoBF,EAAW,SAAAhV,GAC5BA,GAAYA,EAASzM,MACrBP,EAAKmhB,SAASgB,gBAAkBF,EAChCjiB,EAAKmhB,SAASY,OAASC,GAEvBhiB,EAAKmhB,SAASY,OAASD,EAE3B9hB,EAAKoiB,kBAEV,KACHF,oBApBK,SAoBeH,EAAQM,GACxB,IAAIlB,EAAWpiB,OAAOmM,OAAO,GAAIhM,KAAKiiB,UAGtC,OAFAA,EAASY,OAASA,EAEX7iB,KAAKsK,IAAIT,IAAI,sBAAuB,CAAEvI,OAAQ,CAAE8f,QAAS,CAAE5I,eAAgBxY,KAAKqE,MAAMmU,eAAgByJ,SAAUA,MACtHpU,KAAK,SAACC,GAAeqV,EAASrV,KAC9BK,MAAM,SAAC0K,GAAYvK,QAAQC,IAAI,kCAAoCsK,2CC9FhFja,EAAAC,EAAAC,GAAA,IAAAC,EAAAH,EAAA,GAAAwkB,EAAAxkB,EAAA,IAAAykB,EAAAzkB,EAAAuQ,EAAAiU,GAAAE,EAAA1kB,EAAA,IAIeI,cAAIC,UAAU,+BAAgC,CACzDuL,WAAW,CACPqX,kBAAqBC,WAEzB5iB,SAAQ,s5DAyCRmC,KAAM,WACF,MAAO,CACHkiB,UAAU,EACVxB,eAAgB/hB,KAAKgiB,WAG7B7iB,MAAM,CACF8iB,SAAUpiB,OACVqiB,cAAe7iB,OACf2iB,SAAU,CAAE5iB,KAAMK,QAASH,SAAS,GACpCohB,YAAa7gB,QAEjBC,SAAU,CACNqiB,cADM,WAEF,OAAOC,IAAMC,KAAKriB,KAAKiiB,SAASK,UAAUlf,IAAI,SAAAmf,GAAC,OAAIA,EAAE/Q,UAG7DrR,QAAQ,CACJqiB,uBADI,SACmBP,EAAU/f,GAC7BA,EAAMugB,kBACNziB,KAAK+hB,gBAAkB/hB,KAAK+hB,gIC/DzB/iB,cAAIC,UAAU,kBAAmB,CAC5CmS,QAASiH,UACThX,KAAM,WACF,MAAO,CACHmX,eAAgB,KAChBlO,IAAKY,IAAMC,OAAO,CACdC,QAAS,4BAEbkN,KAAM,KACNoB,UAAW,OAGnBvZ,QAAQ,CAMJ4Y,eANI,SAMWJ,GACX3Y,KAAKsY,KAAOK,EAAQrG,KAAK,sBACzBtS,KAAK0Z,UAAY1Z,KAAKsY,KAAKqB,SAAS,CAChCC,WAAY,mCACZC,aAAc,MACdC,eAAgB,SAACjB,EAAOkB,GACpBtZ,EAAEsZ,GAAIC,SAAS,cACfvZ,EAAEsZ,GAAIE,QAAQ,eAAeC,OAAOrB,IAExCsB,UAAW,SAAAJ,GACPtZ,EAAEsZ,GAAIE,QAAQ,eAAe3H,KAAK,eAAe8H,YAAY,cAAcJ,SAAS,eAExFK,QAAS,SAAAN,GACLtZ,EAAEsZ,GAAIE,QAAQ,eAAe3H,KAAK,eAAe8H,YAAY,cAC7D3Z,EAAEsZ,GAAIO,aAIlBkJ,YAxBI,WAyBA,IAAIC,GAAW,EASf,OAPKzK,gBAAgBC,cAAcyK,4BAG/BjjB,EAAE,uCAAuCuZ,SAAS,UAClDyJ,EAAWzjB,KAAK0Z,UAAUpB,QAH1B7X,EAAE,uCAAuC2Z,YAAY,UAMlDqJ,GAEXtK,QApCI,WAoCK,IAAArY,EAAAd,KACL,GAAGA,KAAKwjB,cAAc,CAClB,IAAIpK,EAAWC,cAAwBrZ,KAAKsY,MAE5CtY,KAAKsK,IAAIgP,KAAK,6BAA8BF,GACvCvL,KAAK,SAACC,GAAe,OAAO,IAC5BD,KAAK,SAAC4L,GACAA,GAAsB3Y,EAAKqB,MAAM,UAAU,KAEjDgM,MAAM,SAAC0K,GACJvK,QAAQC,IAAI,6BAA+BsK,GAC3C/X,EAAKqB,MAAM,mBAI3ByW,kBAnDI,SAmDcD,GACd3Y,KAAK+Y,eAAeJ,GACpBlK,IAAIC,QAAQ,CAAC,yBAA0B,yBAA0B,oBAAqB,UAAW,aAAc,gBAAiB,YAAa,yBAC7IsK,gBAAgBC,cAAc0K,gBAElCpL,YAxDI,WAwDS,IAAAlP,EAAArJ,KACTA,KAAKwY,eAAiBxY,KAAKyY,QAAQD,eACnCxY,KAAKsK,IAAIT,IAAI,iCAAkC,CAAEvI,OAAQ,CAAEkX,eAAgBxY,KAAKwY,kBAC/E3K,KAAK,SAACC,GAAe,OAAOzE,EAAKqP,iBAAiB5K,EAASzM,QAC3DwM,KAAK,SAAC8K,GAActP,EAAKuP,kBAAkBD,KAC3CxK,MAAM,SAAC0K,GAAYvK,QAAQC,IAAI,kCAAoCsK,OAG5EhY,QA5E4C,aA+E5C4I,QA/E4C,WAgFxCzJ,KAAKuY,yFCpFEzZ,EAAA,SACXuC,KAAM,iBAAO,CACTqI,oBAAgB7B,IAEpB4B,QAJW,WAKPzJ,KAAK0J,eAAiB,IAAIka,gBAAgBpjB,OAAO2C,SAAS0gB,SAE9D/jB,SAAU,CACN6D,YADM,WAEF,OAAO3D,KAAK0J,gBAAkB1J,KAAK0J,eAAeC,IAAI,UAAiD,SAArC3J,KAAK0J,eAAeG,IAAI,2ICPvF7K,cAAIC,UAAU,kBAAmB,CAC5CoC,KAAM,iBAAO,CACTiJ,IAAKY,IAAMC,OAAO,CACdC,QAAS,wBAEb+U,SAAS,IAEbrgB,SAAU,CACNgkB,uBADM,WAIF,MADqB,CAAC,EAAE,EAAE,EAAE,GAAGC,SAAS/jB,KAAKgkB,SAASnP,WACN,IAAvB7U,KAAKgkB,SAAS5kB,MAAqC,IAAvBY,KAAKgkB,SAAS5kB,OAEvE6kB,yBANM,WAOF,OAA8B,IAAvBjkB,KAAKgkB,SAAS5kB,MAEzB8kB,2CATM,WAUF,OAA8B,IAAvBlkB,KAAKgkB,SAAS5kB,MAEzB+kB,gCAZM,WAaF,OAA8B,IAAvBnkB,KAAKgkB,SAAS5kB,MAEzBglB,2BAfM,WAgBF,OAA8B,IAAvBpkB,KAAKgkB,SAAS5kB,MAEzBilB,iBAlBM,WAmBF,OAAOrkB,KAAKskB,MAAMC,MAAM,SAAAC,GAAC,OAAIA,EAAEC,YAEnCC,mBArBM,WAsBF,IAAMC,EAAgB3kB,KAAKskB,MAAM7d,OAAO,SAAA+d,GAAC,OAAKA,EAAEC,WAC5CC,EAAqB,GAMzB,OAJAC,EAAcpb,QAAQ,SAAAib,GAClBE,EAAmBrc,KAAKmc,EAAEI,qBAGvBF,GAEXG,YA/BM,WAgCF,IAAIC,EAAQ,GAKZ,OAJA9kB,KAAK8kB,MAAMvb,QAAQ,SAAAwb,GACfA,EAAEC,kBAAoB5O,IAAO2O,EAAEE,UAAU3O,OAAO,sBAChDwO,EAAMzc,KAAK0c,KAERD,GAEXI,SAvCM,WAwCF,OAAOC,MAAMC,aAGrBjlB,QAAS,CACLklB,iBADK,SACY7gB,GAAG,IAAA1D,EAAAd,KAChBwE,EAAEsL,iBACF,IAAM1N,EAASoC,EAAE8gB,cACXrkB,EAAMmB,EAAOgd,aAAa,QAC1B1f,EAAK0C,EAAOgd,aAAa,gBACzBmG,EAAMnjB,EAAOgd,aAAa,yBAC1BoG,EAAUhlB,OAAOglB,QAAQD,GAGzBpT,EAAQwQ,EAAE8C,UAAUzlB,KAAK8kB,MAAO,SAASC,GAC3C,OAAOA,EAAEW,SAAW9b,SAASlK,KAG5B8lB,IAILxlB,KAAKmgB,SAAU,EAGfjV,IAAMrB,IAAI5I,GACL4M,KAAK,SAAC8X,GAECA,EAAKtkB,KAAKukB,UASVnX,IAAIC,QAAQ,SAAU,CAAEtP,KAAM,UAAW2P,KAAM,8BAA+BP,QAASmX,EAAKtkB,KAAK6T,WAPjGpU,EAAKgkB,MAAM9W,OAAOmE,EAAO,GAGzB1D,IAAIC,QAAQ,SAAU,CAAEtP,KAAM,UAAW2P,KAAM,mBAAoBP,QAASmX,EAAKtkB,KAAK6T,aAO7F/G,MAAM,SAAC0K,GACJvK,QAAQC,IAAIsK,KAEfgN,QAAQ,WACL/kB,EAAKqf,SAAU,MAG3B2F,gBA3CK,WA2Ca,IAGVhY,EAHUzE,EAAArJ,KACdA,KAAKmgB,SAAU,EAGfngB,KAAKsK,IAAIgP,KAAK,qBAAsBtZ,KAAKgkB,UACpCnW,KAAK,SAAC8X,IACH7X,EAAW6X,EAAKtkB,MACH0kB,UACTtX,IAAIC,QAAQ,SAAU,CAAEtP,KAAM0O,EAASoT,aAAa9hB,KAAM2P,KAAM,kCAAmCP,QAASV,EAASoT,aAAaC,UAElI3gB,OAAO2C,SAAS6R,KAAOlH,EAASmH,cAGvC9G,MAAM,SAAC0K,GACJvK,QAAQC,IAAIsK,KAEfgN,QAAQ,WACLxc,EAAK8W,SAAU,KAG3B6F,mBA/DK,WA+DgB,IAGblY,EAHa8O,EAAA5c,KACjBA,KAAKmgB,SAAU,EAGfngB,KAAKsK,IAAIgP,KAAK,sBAAuBtZ,KAAKgkB,UACrCnW,KAAK,SAAC8X,IACH7X,EAAW6X,EAAKtkB,MACH0kB,UACTtX,IAAIC,QAAQ,SAAU,CAAEtP,KAAM0O,EAASoT,aAAa9hB,KAAM2P,KAAM,kCAAmCP,QAASV,EAASoT,aAAaC,UAElI3gB,OAAO2C,SAAS6R,KAAOlH,EAASmH,cAGvC9G,MAAM,SAAC0K,GACJvK,QAAQC,IAAIsK,KAEfgN,QAAQ,WACLjJ,EAAKuD,SAAU,KAI3B8F,iBApFK,WAqFDzlB,OAAO0lB,KAAKlmB,KAAKsK,IAAI6b,SAAS/a,QAAU,gCAAkCpL,KAAKgkB,SAASoC,aAE5FC,wBAvFK,WAyFD,GAAIrmB,KAAKskB,MAAMhb,OAAS,EAAG,CACvB,IAAMgd,EAA8BtmB,KAAKskB,MAAMhS,KAAK,SAAAkS,GAAC,MAAc,4BAAVA,EAAE+B,MACvDD,IAAgCA,EAA4B7B,WAC5D6B,EAA4B7B,UAAW,GAI/CjkB,OAAO0lB,KAAKlmB,KAAKsK,IAAI6b,SAAS/a,QAAU,uCAAyCpL,KAAKgkB,SAASoC,aAEnGI,OAlGK,WAmGDxmB,KAAKymB,UAAU,2BAEnBA,UArGK,SAqGK/mB,GACNc,OAAOC,EAAE,IAAMf,GAAIgnB,MAAM,wGCzJtB1nB,cAAIC,UAAU,oBAAqB,CAC9CoC,KAAM,iBAAO,CACTiJ,IAAKY,IAAMC,OAAO,CACdC,QAAS,wBAEbub,WAAY,KACZC,gBAAiB,KACjBzG,SAAS,IAEbhgB,QAAS,CACLsmB,UADK,WACO,IAIA3Y,EAJAhN,EAAAd,KACJA,KAAK4mB,gBACLpmB,OAAOC,EAAE,0BAA0BimB,MAAM,QAGzC1mB,KAAKsK,IAAIT,IAAI,6BACZgE,KAAK,SAAC8X,GAE8B,MADjC7X,EAAW6X,EAAKtkB,MACHwlB,kBACT/lB,EAAK8lB,gBAAkB9Y,EAAS+Y,mBAEvC1Y,MAAM,SAAC0K,GACJvK,QAAQC,IAAIsK,KAEfgN,QAAQ,WACLrlB,OAAOC,EAAE,0BAA0BimB,MAAM,WAIrDI,iBApBK,WAqBDtmB,OAAO0lB,KAAKlmB,KAAK4mB,kBAErBG,WAvBK,SAuBM7kB,GACPlC,KAAK2mB,WAAazkB,EAAME,OAAO0iB,MAAM,IAEzCkC,gBA1BK,WA0Ba,IAAA3d,EAAArJ,KACdA,KAAKmgB,SAAU,EAEf,IAGIrS,EAHAsL,EAAW,IAAI6N,SACnB7N,EAASc,OAAO,sBAAuBla,KAAK2mB,WAAY3mB,KAAK2mB,WAAWpgB,MAGxEvG,KAAKsK,IAAIgP,KAAK,uBAAwBF,GACjCvL,KAAK,SAAC8X,GACH7X,EAAW6X,EAAKtkB,KAChBoN,IAAIC,QAAQ,SAAU,CAAEtP,KAAM0O,EAASoT,aAAa9hB,KAAM2P,KAAoC,WAA9BjB,EAASoT,aAAa9hB,KAAoB,mBAAqB,kCAAmCoP,QAASV,EAASoT,aAAaC,UAG5LrT,EAASiY,WACVvlB,OAAOC,EAAE,0BAA0BimB,MAAM,UAGhDvY,MAAM,SAAC0K,GACJvK,QAAQC,IAAIsK,KAEfgN,QAAQ,WACLxc,EAAK8W,SAAU,0CC3DnCvhB,EAAAC,EAAAC,GAAA,IAAAC,EAAAH,EAAA,GAIeI,cAAIC,UAAU,UAAW,CACpCioB,OAAQ,SAAUC,GACd,OAAOA,EAAc,QAASnnB,KAAKonB,OAAO9nB,oICFnCN,cAAIC,UAAU,YAAa,CACtCuL,WAAY,CACR6c,iBAEJnoB,SAAQ,+sHA6DRmC,KAAM,iBAAO,CACTimB,aAAa,EACbhd,IAAKY,IAAMC,OAAO,CACdC,QAAS,eAEb2a,WAAW,EACXwB,OAAQ,GACRpH,SAAS,EACT3R,aAAS3G,EACT2f,WAAO3f,EACP4f,cAAU5f,EACV6f,mBAAe7f,EACftI,WAAOsI,IAEX1I,MAAO,CAAC,YACRW,SAAU,CACN6nB,eADM,WAEF,OAAI3nB,KAAK0nB,cACE1nB,KAAKwnB,MAAMI,UAAU5nB,KAAK0nB,eAE1B1nB,KAAKwnB,MAAMI,UAAU,KAIxCtnB,MAAO,CACHf,MAAO,SAAUA,GACTA,GAAiC,KAAxBA,EAAMsoB,OAAOve,OACtBtJ,KAAK6jB,UAGL7jB,KAAK+lB,WAAY,EACjB/lB,KAAKwO,aAAU3G,KAI3B4B,QApGsC,WAoG5B,IAAA3I,EAAAd,KACNA,KAAKwnB,MAAQtI,KAAKC,MAAMnf,KAAK8nB,UAE7BC,UAAYC,QAAU,SAACxjB,GAEnB,IAAK1D,EAAKwmB,YAKN,IAAK,IAAMtI,KAJXxa,EAAIA,GAAKtC,MACTpB,EAAKymB,OAAO/iB,EAAEgN,MAAkB,WAAVhN,EAAEpF,KAGR0B,EAAK0mB,MAAMI,UAAW,CAClC,IAAMK,EAAWnnB,EAAK0mB,MAAMI,UAAU5I,GAGtC,GAAIle,EAAKonB,QAAQD,EAASE,MAYtB,OATArnB,EAAK4mB,cAAgB1I,EAGrBle,EAAK2lB,UAAU,iBAGf3lB,EAAKymB,OAAS,IAGP,KAM3B1mB,QApIsC,WAoI5B,IAAAwI,EAAArJ,KAENQ,OAAOC,EAAE,kBAAkBwB,GAAG,kBAAmB,WAC7CoH,EAAK0c,WAAY,EACjB1c,EAAK9J,WAAQsI,EACbwB,EAAKie,aAAc,EACnBje,EAAKqe,mBAAgB7f,IAIzBrH,OAAOC,EAAE,kBAAkBwB,GAAG,iBAAkB,WAC5CoH,EAAK+e,cAGbjoB,QAAS,CACL+nB,QADK,SACGC,GACJ,IAAME,EAAa,GAEnB,IAAK,IAAMrJ,KAAKmJ,EAAM,CAClB,IAAM5B,EAAM4B,EAAKnJ,GACD,YAAZuH,EAAIA,IACJ8B,EAAWhgB,KAAMrI,KAAKunB,OAAL,aAA8BvnB,KAAKunB,OAAL,cAC5B,QAAZhB,EAAIA,IACX8B,EAAWhgB,KAAMrI,KAAKunB,OAAL,SAA0BvnB,KAAKunB,OAAL,UAE3Cc,EAAWhgB,KAAKrI,KAAKunB,OAAOhB,EAAI/U,OAIxC,OAAQ6W,EAAWtE,cAASlc,IAEhC4e,UAjBK,SAiBK6B,GAAS,IAAA1L,EAAA5c,KAEfQ,OAAOC,EAAE,UAAUimB,MAAM,QAGzBlmB,OAAOC,EAAE,IAAM6nB,GAAS5B,MAAM,QAAQ6B,SAAS,QAG/B,kBAAZD,IACAtoB,KAAKsnB,aAAc,GAIlBtnB,KAAKU,MAAMmjB,OAAOnjB,OACnBV,KAAKU,MAAMmjB,OAAO1f,iBAAiB,QAAS,SAACK,GAE1B,WADfA,EAAIA,GAAKtC,OACHsP,MACFoL,EAAKiH,YAKrBuE,SAvCK,WAwCGpoB,KAAKU,MAAMmjB,OAAOnjB,OAClBV,KAAKU,MAAMmjB,OAAOnjB,MAAM8nB,MAAMhpB,UAAW,EACzCQ,KAAKU,MAAMmjB,OAAOnjB,MAAM8nB,MAAMtY,SAE9BlQ,KAAKU,MAAMmjB,OAAO3T,SAG1B2T,OA/CK,WA+CI,IAAA4E,EAAAzoB,KACLA,KAAK+lB,WAAY,EACjB/lB,KAAKmgB,SAAU,EACf,IAAMxS,EAAa,GACnBA,EAAW3N,KAAK2nB,eAAee,WAAa1oB,KAAKT,MAEjDS,KAAKsK,IAAIgP,KAAKtZ,KAAK2nB,eAAegB,OAAQhb,GACrCE,KAAK,SAACC,GACH,IAAMzM,EAAOyM,EAASzM,KACjBA,EAAKukB,WAGN6C,EAAK1C,UAAY1kB,EAAKukB,UACtB6C,EAAKja,QAAUnN,EAAK6T,SAHpB1U,OAAO2C,SAAS6R,KAAO3T,EAAKunB,cAMnCza,MAAM,SAAC0K,GACJvK,QAAQC,IAAIsK,KAEfgN,QAAQ,WACL4C,EAAKtI,SAAU,EACfsI,EAAKL,uGCvNVppB,cAAIC,UAAU,eAAgB,CACzCoC,KAAM,iBAAO,CACTiJ,IAAKY,IAAMC,OAAO,CACdC,QAAS,qBAEbyd,YAAa,KACbC,cAAe,KACfC,YAAa,KACb5I,SAAS,IAEbhgB,QAAS,CACL6oB,YADK,SACO9mB,GAEJA,EAAME,OAAO6mB,QAAQ,yBACrBjpB,KAAKymB,UAAUvkB,EAAME,OAAO8mB,QAAQC,aAAcjnB,IAG1DukB,UAPK,SAOKrnB,EAAM8C,GAEZlC,KAAK6oB,YAAc3mB,EAAME,OAAOgnB,QAAQ,SAAStK,iBAAiB,cAAgB1f,EAAO,sBAEzFoB,OAAOC,EAAE,8BAA8BimB,MAAM,SAEjDyC,aAbK,WAaU,IAAAroB,EAAAd,KACLsB,EAAS,CACXqE,OAAQ3F,KAAK6oB,YAAYvf,OACzByf,YAAanf,SAAS5J,KAAK+oB,cAI/B/oB,KAAKsK,IAAIT,IAAI,kCAAmC,CAAEvI,WACjDuM,KAAK,SAAC8X,GACQA,EAAKtkB,KAGPgoB,eAAe9f,QAAQ,SAAC+f,EAAGtK,GAChCle,EAAK+nB,YAAY7J,GAAGzf,MAAQ+pB,IAIhC9oB,OAAOC,EAAE,8BAA8BimB,MAAM,QAG7C5lB,EAAKioB,YAAc,KAGnBjoB,EAAKJ,MAAM6oB,kBAAkBC,UAEhCrb,MAAM,SAAC0K,GACJvK,QAAQC,IAAIsK,KAEfgN,QAAQ,oDCtDrBjnB,EAAAC,EAAAC,GAAA,IAAAC,EAAAH,EAAA,GAAA6qB,EAAA7qB,EAAA,KAAA8qB,EAAA9qB,EAAA,KAAA+qB,EAAA/qB,EAAA,KAAAgrB,EAAAhrB,EAAA,KAMeI,cAAIC,UAAU,gBAAiB,CAC1CmS,QAASyY,UACTrf,WAAW,CACPsf,eAAkBC,UAClBC,KAAQC,WAEZ9pB,QAAQ,CAEJiM,aAFI,WAGA,MAAO,CAAC,CAAE7E,MAAOvH,KAAKiK,UAAUkC,QAAQ+d,OAAQC,QAASnqB,KAAKoqB,aAAcrb,KAAM,0BAEtFqb,aALI,WAKU,IAAAtpB,EAAAd,KACN0N,EAAoB,CACpBF,SAAUxN,KAAKgK,gBAAgBwD,SAC/B1B,iBAAkB9L,KAAKyK,WAAWqB,kBAGtC9L,KAAKsK,IAAIT,IAAI,mBAAoB,CACzBvI,OAAQ,CAAE+oB,eAAgB3c,KAC3BG,KAAK,SAACC,GACFA,EAASzM,KAAKipB,gBACbxpB,EAAKypB,gBAAgBzc,EAASzM,MAE9Bb,OAAO2C,SAAS6R,KAAOlH,EAASzM,KAAK+T,YAE1CjH,MAAM,SAACC,GACNE,QAAQC,IAAI,YAAaH,EAAOI,WACjCX,KAAK,eAIhB0c,gBAzBI,SAyBYC,GACZxqB,KAAK4W,OAAOC,KAAK4T,UAAoB,CACjCtV,UAAWqV,EAAoBrV,UAC/BlL,UAAWugB,EAAoBvgB,WAChC,CACCiN,UAAU,EACVC,OAAQ,OACRC,SAAU,6ICrC1BsT,YAAO,WAAY/P,KACnB+P,YAAO,QAASC,KAEhB3rB,IAAIsD,IAAIsoB,KAEO5rB,cAAIC,UAAU,OAAQ,CACjCuL,WAAY,CACRqgB,uBAAoBC,wBAExBzpB,KAAM,iBAAO,CACTiJ,IAAKY,IAAMC,OAAO,CACdC,QAAS,oBAEb2f,cAAe,EACfC,cAAe,GACfC,SAAS,EACTC,SAAU,EACVC,kBAAkB,EAClBC,UAAU,EACVC,OAAQ,GACRC,OAAQ,GACRC,WAAY,EACZC,cAAe,EACfC,oBAAoB,IAExBhiB,QApBiC,WAqB7BzJ,KAAKqrB,OAAS,CACV,CAAC,aACD,CAAC,aACD,CAAC,aACD,CAAC,aACD,CAAC,YAAa,aACd,CAAC,cAILrrB,KAAK0rB,WAAWnlB,KAAO,GACvBvG,KAAK0rB,WAAWC,aAAe,GAC/B3rB,KAAK0rB,WAAW/kB,WAAa,IAEjC9F,QAnCiC,WAoC7Bb,KAAKgrB,cAAgB7gB,MAAMnK,KAAK4rB,UAAUtiB,QAAQuiB,KAAK,MACvD7rB,KAAK8rB,oBACL9rB,KAAK+rB,gBAED/rB,KAAKgsB,WACLhsB,KAAKyrB,oBAAqB,IAGlC3rB,SAAU,CACNmsB,YADM,WAGF,QADY,IAAIC,OAAO,0CACbC,KAAKnsB,KAAK0rB,WAAW/kB,aAKnCqlB,SARM,WASF,QAAG,iEAAiEG,KAAKC,UAAUC,aAO3FlsB,QAAS,CACLmsB,MADK,WAEDtsB,KAAKirB,SAAU,EACfjrB,KAAKusB,mBAGLvsB,KAAKwsB,YAAY,GACjBxsB,KAAKysB,eAETC,QATK,WAUD1sB,KAAK+qB,cAAgB,EACrB/qB,KAAKgrB,cAAgB7gB,MAAMnK,KAAK4rB,UAAUtiB,QAAQuiB,KAAK,MAGvD7rB,KAAKwsB,YAAY,IAErBG,aAhBK,SAgBQC,EAAQza,GAKjB,GAH+C,OAA3CnS,KAAKgrB,cAAchrB,KAAK+qB,iBACxB/qB,KAAKgrB,cAAchrB,KAAK+qB,eAAiB,KAEwB,IAAjE/qB,KAAKgrB,cAAchrB,KAAK+qB,eAAe8B,QAAQD,EAAOzP,MAAc,CAEpE,IAAI9c,EAAOL,KAAKgrB,cAAchrB,KAAK+qB,eAAe8B,QAAQD,EAAOzP,OACnD,IAAV9c,GACAL,KAAKgrB,cAAchrB,KAAK+qB,eAAe/c,OAAO3N,EAAM,OAErD,CAEH,IAAIysB,EAAM9sB,KAAKgrB,cAAchrB,KAAK+qB,eAClC+B,EAAIzkB,KAAKukB,EAAOzP,MAChBne,IAAI+tB,IAAI/sB,KAAKgrB,cAAehrB,KAAK+qB,cAAe+B,KAGxDE,iBAlCK,SAkCYJ,EAAQza,GACrB,OAA+C,OAA3CnS,KAAKgrB,cAAchrB,KAAK+qB,iBAC6C,IAAjE/qB,KAAKgrB,cAAchrB,KAAK+qB,eAAe8B,QAAQD,EAAOzP,OAMlE8P,iBA1CK,SA0CYC,GACb,OAAiB,OAAbA,GACIA,EAAS5jB,OAAS,GAM9B6jB,KAlDK,WAmDGntB,KAAK+qB,cAAgB/qB,KAAK4rB,UAAUtiB,SACpCtJ,KAAK+qB,gBAGD/qB,KAAK+qB,cAAiB/qB,KAAK4rB,UAAUtiB,OAIrCtJ,KAAK+qB,eAAiB/qB,KAAK4rB,UAAUtiB,QAAUtJ,KAAKotB,SAAWptB,KAAKkrB,SAEpElrB,KAAKwsB,YAAYxsB,KAAKurB,WAAa,EAAG,GAGtCvrB,KAAKwsB,YAAYxsB,KAAKurB,WAAa,IAG3CvrB,KAAKysB,eAETY,KArEK,WAsEGrtB,KAAK+qB,cAAgB,IACrB/qB,KAAK+qB,gBAGL/qB,KAAKwsB,YAAYxsB,KAAKurB,WAAa,IAEvCvrB,KAAKysB,eAETA,YA9EK,WA+EDjsB,OAAO8sB,SAAS,CAAEC,IAAK,EAAGC,SAAU,YAExCzB,cAjFK,WAkFD,IAAI/M,EACJ,IAAKA,EAAI,EAAGA,EAAIhf,KAAK4rB,UAAUtiB,OAAQ0V,IAAK,EAC9B,IAAIyO,OACVC,IAAJ,mDAAAztB,OAA8D+e,EAAI,EAAlE,UAGRoO,MAxFK,WAwFG,IAAAtsB,EAAAd,KACAotB,EAAQ,EA0BZ,OAxBAptB,KAAK4rB,UAAUriB,QAAQ,SAACokB,EAAG3O,GACvBle,EAAK8qB,UAAU5M,GAAG4O,QAAQrkB,QAAQ,SAAAqjB,GAE1B9rB,EAAKkqB,cAAchM,KACf4N,EAAOiB,WAE6C,IAAhD/sB,EAAKkqB,cAAchM,GAAG6N,QAAQD,EAAOzP,OACrCiQ,KAIgD,IAAhDtsB,EAAKkqB,cAAchM,GAAG6N,QAAQD,EAAOzP,OACrCiQ,SAUpBptB,KAAK0rB,WAAW0B,MAAQA,EAEjBA,GAEXZ,YArHK,SAqHOsB,GAAwB,IAAdjqB,EAAckqB,UAAAzkB,OAAA,QAAAzB,IAAAkmB,UAAA,GAAAA,UAAA,GAAH,EAG7B/tB,KAAKU,MAAMstB,OAAOC,QAElBjuB,KAAKwrB,cAAgB3nB,EAErB7D,KAAKurB,WAAauC,GAEtBI,aA9HK,WAgIDluB,KAAKU,MAAMstB,OAAOG,QAEtBC,YAlIK,aAqILC,YArIK,SAqIO/sB,GACY,oBAAhBA,EAAOiF,OAEPvG,KAAKyrB,oBAAqB,IAGlC6C,WA3IK,WA4IDtuB,KAAKU,MAAMstB,OAAOG,OAClBnuB,KAAKyrB,oBAAqB,GAE9B8C,QA/IK,SA+IGnM,GACJ,IAAK,IAAIpD,EAAIoD,EAAM9Y,OAAS,EAAG0V,EAAI,EAAGA,IAAK,CACvC,IAAMwP,EAAI9e,KAAK+e,MAAM/e,KAAKgf,UAAY1P,EAAI,IADH2P,EAEhB,CAACvM,EAAMoM,GAAIpM,EAAMpD,IAAvCoD,EAAMpD,GAFgC2P,EAAA,GAE5BvM,EAAMoM,GAFsBG,EAAA,GAI3C,OAAOvM,GAEX0J,kBAtJK,WAsJe,IAAAziB,EAAArJ,KAEhBA,KAAKkrB,SAAW,EAChBlrB,KAAK4rB,UAAUriB,QAAQ,SAAC2jB,GACpBA,EAASU,QAAQrkB,QAAQ,SAACqjB,GACtBvjB,EAAK6hB,gBAIjBqB,iBA/JK,WA+Jc,IACXze,EADW8O,EAAA5c,KAEfA,KAAKmrB,kBAAmB,EACxBnrB,KAAKsK,IAAIT,IAAI,6BAA+B7J,KAAK0rB,WAAW/kB,YACvDkH,KAAK,SAAC8X,IACH7X,EAAW6X,EAAKtkB,MAGHiI,OAAS,IAClBsT,EAAKgP,UAAU,GAAGgC,QAAU,IAGhC9f,EAASvE,QAAQ,SAAA/D,GAAY,OACzBoX,EAAKgP,UAAU,GAAGgC,QAAQvlB,KAAK,CAC3B8U,KAAM3X,EAAae,KACnBsnB,WAAW,MAKnBjR,EAAKgP,UAAU,GAAGgC,QAAUhR,EAAK2R,QAAQ3R,EAAKgP,UAAU,GAAGgC,WAE9Dzf,MAAM,SAAC0K,GACJvK,QAAQC,IAAIsK,KAEfgN,QAAQ,WACLjJ,EAAKkP,oBACLlP,EAAKuO,kBAAmB,KAGpCyD,SA7LK,WA6LM,IAAAnG,EAAAzoB,KAEPA,KAAKsK,IAAIgP,KAAK,gBAAiBtZ,KAAK0rB,YAC/B7d,KAAK,SAAC8X,GACQA,EAAKtkB,OAEnB8M,MAAM,SAAC0K,GACJvK,QAAQC,IAAIsK,KAEfgN,QAAQ,WACL4C,EAAK2C,UAAW,EAChB3C,EAAK+D,YAAY/D,EAAK8C,WAAa,GACnC9C,EAAKgE,kBAIrBnsB,MAAO,CACH0qB,cAAe,SAAS6D,EAAcC,GAClC9uB,KAAK0rB,WAAWkC,QAAUiB,EAAaE,OAAO,SAACC,EAAKzuB,GAAN,OAAcyuB,EAAI/uB,OAAOM,IAAM,IAAIkG,OAAOhH,SAASiH,KAAK,2HCjRnG1H,cAAIC,UAAU,eAAgB,CACzCuL,WAAW,CACPwF,WAAcC,UACdgf,cAAiBC,UACjBC,6BAAgCC,WAEpClwB,SAAQ,8/MA4GRmC,KAAM,WACF,MAAO,IAGXlC,MAAM,CACFihB,0BAA2BvgB,OAC3B0gB,+BAAgC1gB,OAChC2gB,yBAA0BrW,MAC1BsW,8BAA+BtW,MAC/BuW,YAAa7gB,OACb+gB,UAAW/gB,QAEfC,SAAU,CACNuvB,sCADM,WAEF,OAAOrvB,KAAKsvB,yBAAyBtvB,KAAKogB,0BAA0BE,aAExEiP,2CAJM,WAKF,OAAOvvB,KAAKsvB,yBAAyBtvB,KAAKugB,+BAA+BD,cAGjFngB,QAAQ,CACJqvB,iBADI,SACaC,GACb,IAAItd,EAAQiQ,IAAMqD,UAAUzlB,KAAKwgB,yBAA0B,CAAC,OAAQiP,IAGpE,OAFoBzvB,KAAKwgB,yBAAyBrO,IAItDud,gCAPI,SAO4BD,GAC5B,IAAItd,EAAQiQ,IAAMqD,UAAUzlB,KAAKygB,8BAA+B,CAAC,OAAQgP,IAGzE,OAFoBzvB,KAAKygB,8BAA8BtO,IAI3Dwd,wBAbI,SAaoBC,GACpB,MAAO,CACHlwB,GAAIkwB,EAAMlwB,GACVyd,KAAMnd,KAAK6vB,4BAA4BD,KAG/CC,4BAnBI,SAmBwBD,GACxB,MAAO,CAACA,EAAMH,mBAAoBG,EAAME,SAAUF,EAAMG,YAAaH,EAAMI,aAAavpB,OAAO,SAAA8b,GAAC,OAAIA,IAAG7b,KAAK,QAEhH4oB,yBAtBI,SAsBqBW,GACrBA,EAAOC,KAAKlwB,KAAKmwB,qBAEjB,IAAIC,EAAgBpwB,KAAKqwB,4BACrBC,EAAeL,EAAO7sB,IAAIpD,KAAK2vB,yBAInC,OAFAW,EAAatiB,OAAO,EAAG,EAAGoiB,GAEnB,CAAEG,MAAOD,IAGpBE,oBAjCI,SAiCgBZ,GAChB,MAAO,CACHpe,KAAMoe,EAAMH,mBACZlpB,KAAMqpB,EAAMrpB,KACZ+b,UAAW,CAAC,CAAE9Q,KAAMoe,EAAME,SAAU5N,cAAe0N,EAAM1N,gBACzDW,OAAQ,EACRI,eAAgB,EAChBwN,WAAY,CAAE/wB,GAAI,KAAM8R,KAAM,KAAMjL,KAAM,QAGlD8pB,0BA3CI,WA4CA,MAAO,CAAElT,KAAMnd,KAAK4gB,UAAU8P,oBAKlCC,mCAjDI,SAiD+BC,GAC/B,IAAIC,EAAmB7wB,KAAKogB,0BAA0BE,WAClDwQ,EAAiB9wB,KAAKogB,0BAA0BC,SAChDlO,EAAQiQ,IAAMqD,UAAUoL,EAAkB,CAAC,KAAMD,IACjDhB,EAAQiB,EAAiB1e,GAE7B0e,EAAiB7iB,OAAOmE,EAAO,GAC/B2e,EAAezoB,KAAKunB,GACpBkB,EAAeZ,KAAKlwB,KAAKmwB,qBAGzB,IAAIY,EAAgB/wB,KAAKwvB,iBAAiBI,EAAMH,yBAE3B5nB,IAAlBkpB,GACCA,EAAczO,UAAUja,KAAK,CAACmJ,KAAMoe,EAAME,SAAU5N,cAAe0N,EAAM1N,gBACzE6O,EAAczO,UAAU4N,KAAKlwB,KAAKgxB,qBAElChxB,KAAKwgB,yBAAyBnY,KAAKrI,KAAKwwB,oBAAoBZ,IAC5D5vB,KAAKwgB,yBAAyB0P,KAAKlwB,KAAKgxB,qBAOhDC,iCA1EI,SA0E6BL,GAC7B,IAAIC,EAAmB7wB,KAAKogB,0BAA0BE,WAClDwQ,EAAiB9wB,KAAKogB,0BAA0BC,SAChDlO,EAAQiQ,IAAMqD,UAAUqL,EAAgB,CAAC,KAAMF,IAC/ChB,EAAQkB,EAAe3e,GAE3B2e,EAAe9iB,OAAOmE,EAAO,GAC7B0e,EAAiBxoB,KAAKunB,GAGtB,IAAImB,EAAgB/wB,KAAKwvB,iBAAiBI,EAAMH,oBAEhD,QAAqB5nB,IAAlBkpB,EAA4B,CAC3B,IAAIG,EAAgB9O,IAAMqD,UAAUsL,EAAczO,UAAW,CAAC,OAAQsN,EAAME,WAI5E,GAFAiB,EAAczO,UAAUtU,OAAOkjB,EAAe,GAER,IAAnCH,EAAczO,UAAUhZ,OAAa,CACpC,IAAI6I,EAAQiQ,IAAMqD,UAAUzlB,KAAKwgB,yBAA0B,CAAC,OAAQoP,EAAMH,qBAC1EzvB,KAAKwgB,yBAAyBxS,OAAOmE,EAAO,MAOxDgf,wCApGI,SAoGoCP,GACpC,IAAIC,EAAmB7wB,KAAKugB,+BAA+BD,WACvDwQ,EAAiB9wB,KAAKugB,+BAA+BF,SACrDlO,EAAQiQ,IAAMqD,UAAUoL,EAAkB,CAAC,KAAMD,IACjDhB,EAAQiB,EAAiB1e,GAE7B0e,EAAiB7iB,OAAOmE,EAAO,GAC/B2e,EAAezoB,KAAKunB,GACpBkB,EAAeZ,KAAKlwB,KAAKmwB,qBAGzB,IAAIY,EAAgB/wB,KAAK0vB,gCAAgCE,EAAMH,yBAE1C5nB,IAAlBkpB,GACCA,EAAczO,UAAUja,KAAK,CAACmJ,KAAMoe,EAAME,SAAU5N,cAAe0N,EAAM1N,gBACzE6O,EAAczO,UAAU4N,KAAKlwB,KAAKgxB,qBAElChxB,KAAKygB,8BAA8BpY,KAAKrI,KAAKwwB,oBAAoBZ,IACjE5vB,KAAKygB,8BAA8ByP,KAAKlwB,KAAKgxB,qBAGrDI,sCAzHI,SAyHkCR,GAClC,IAAIC,EAAmB7wB,KAAKugB,+BAA+BD,WACvDwQ,EAAiB9wB,KAAKugB,+BAA+BF,SACrDlO,EAAQiQ,IAAMqD,UAAUqL,EAAgB,CAAC,KAAMF,IAC/ChB,EAAQkB,EAAe3e,GAE3B2e,EAAe9iB,OAAOmE,EAAO,GAC7B0e,EAAiBxoB,KAAKunB,GAGtB,IAAImB,EAAgB/wB,KAAK0vB,gCAAgCE,EAAMH,oBAE/D,QAAqB5nB,IAAlBkpB,EAA4B,CAC3B,IAAIG,EAAgB9O,IAAMqD,UAAUsL,EAAczO,UAAW,CAAC,OAAQsN,EAAME,WAI5E,GAFAiB,EAAczO,UAAUtU,OAAOkjB,EAAe,GAER,IAAnCH,EAAczO,UAAUhZ,OAAa,CACpC,IAAI6I,EAAQiQ,IAAMqD,UAAUzlB,KAAKygB,8BAA+B,CAAC,OAAQmP,EAAMH,qBAC/EzvB,KAAKygB,8BAA8BzS,OAAOmE,EAAO,MAI7D6e,kBAhJI,SAgJcK,EAAWC,GAC3B,OAAOD,EAAU7f,KAAK+f,cAAcD,EAAU9f,OAEhD2e,oBAnJI,SAmJgBqB,EAAQC,GACxB,OAAGD,EAAO/B,qBAAuBgC,EAAOhC,mBACjC+B,EAAO1B,WAAa2B,EAAO3B,SACvB0B,EAAOzB,cAAgB0B,EAAO1B,YACtByB,EAAOE,QAAQH,cAAcE,EAAOC,SAExCF,EAAOzB,YAAYwB,cAAcE,EAAO1B,aAE5CyB,EAAO1B,SAASyB,cAAcE,EAAO3B,UAEzC0B,EAAO/B,mBAAmB8B,cAAcE,EAAOhC,wJChSnDzwB,cAAIC,UAAU,mBAAoB,CAC7CmS,QAASugB,UACTnnB,WAAY,CACRonB,OAAUC,UACVC,aAAgBC,UAChBC,YAAeC,UACfC,UAAaC,UACbC,WAAcC,WAElBlzB,MAAM,CACFoU,SAAU5T,OACV6Y,eAAgBnZ,QAEpBgC,KAAM,WACF,MAAO,CACHiJ,IAAKY,IAAMC,OAAO,CACdC,QAAS,4BAEbgH,KAAK,GACLN,gBAAYjK,EACZoC,UAAW,CACPqoB,mBAAoB,OACpBC,eAAgB,OAChBC,eAAgB,UAI5BryB,QAAQ,CAEJ4b,qBAFI,SAEiBvD,GACI,IAAlBxY,KAAKuT,WACJvT,KAAKwY,eAAiBA,IAG9Bia,UAPI,WAQAzyB,KAAKU,MAAMgyB,mBAAmBvZ,YAGtCtY,QAtC6C,aAyC7C4I,QAzC6C,WAyCnC,IAAA3I,EAAAd,KACNA,KAAKsK,IACAT,IAAI,YAAa,CAAEvI,OAAQ,CAAEkX,eAAgBxY,KAAKwY,kBAClD3K,KAAK,SAACC,GACHhN,EAAKsR,KAAOtE,EAASzM,KAAK+Q,KAC1BtR,EAAKmJ,UAAY6D,EAASzM,KAAK4I,UAC/BnJ,EAAKgR,WAAahR,EAAKuR,iBAE1BlE,MAAM,SAAC0K,GAAYvK,QAAQC,IAAI,gCAAkCsK,gIC7C1EvM,gIAFEV,EAAcV,IAAMU,YAK1B5M,IAAIsD,IAAIC,IAAO,CACXC,YAAa,CACTC,GAAI,IACJC,GAAI,KACJC,GAAIC,OAIG5D,cAAIC,UAAU,qBAAsB,CAC/CuL,WAAY,CACRmoB,cAAeC,WAEnBvxB,KAAM,WACF,MAAO,CACHqE,QAAS,GACTmtB,aAAa,EACbC,cAAe,KACfC,QAAS,GACTC,eAAgB,GAChBnwB,UAAW,KACXowB,gBAAgB,EAChBC,kBAAkB,EAClBC,aAAa,EACbC,WAAW,IAGnB9yB,MAAO,CACH+yB,iBAAkB,SAAUC,GACxB,GAAkB,IAAbA,EACItzB,KAAKuzB,mBAAmBxP,SAAS,IAClC/jB,KAAKuzB,mBAAmBlrB,KAAK,QAIjC,GAAIrI,KAAKuzB,mBAAmBxP,SAAS,GAAI,CACrC,IAAMyP,EAAyBxzB,KAAKuzB,mBAAmB9N,UAAU,SAACne,GAAD,OAA6B,IAAdA,IAC5EksB,GAA0B,GAC1BxzB,KAAKuzB,mBAAmBvlB,OAAOwlB,EAAwB,MAM3ErzB,QAAS,CAELszB,mBAFK,SAEcC,GACf,YAAkB7rB,IAAd6rB,EACO,KAEJ,CACHC,UAAW,CAAEC,SAAUF,EAAUG,WAAYC,UAAWJ,EAAUK,WAClEC,UAAW,CAAEJ,SAAUF,EAAUO,WAAYH,UAAWJ,EAAUQ,aAI1EC,mBAZK,SAYctxB,GACf,YAAqBgF,IAAdhF,EAA0B,CAAE+wB,SAAU/wB,EAAUqD,IAAK4tB,UAAWjxB,EAAUuxB,KAAQ,MAG7FC,sBAhBK,SAgBiBX,EAAW7wB,GAW7B,MAVuB,CACnByxB,QAASt0B,KAAK0F,QACd6uB,eAAgBv0B,KAAKgzB,eACrBwB,SAAUx0B,KAAKqzB,iBACfoB,WAAYz0B,KAAKuzB,mBAEjBmB,SAAU10B,KAAKyzB,mBAAmBC,GAClCiB,SAAU30B,KAAKm0B,mBAAmBtxB,KAM1C+xB,YA9BK,SA8BOpvB,GAAc,IAAA1E,EAAAd,KAElBoI,EAAS,KAET2G,EAAO1L,IAAEuF,QAAQ,CACjBG,UAAWvD,EAAaqB,yBAA2B,kCAAoC,WACvFmC,SAAU3F,IAAE4F,MAAM,GAAI,IACtBC,WAAY,CAAC,GAAI,MAcrB,OAXoB,MAAhB1D,IACA4C,EAAS/E,IAAE+E,OAAO,CAAC5C,EAAaU,IAAKV,EAAaW,KAAM,CACpD4I,KAAMA,EACNxH,MAAO/B,EAAae,QAGjBtE,GAAG,QAAS,SAAAuC,GACf1D,EAAK+zB,qBAAqBrvB,KAI3B4C,GAEX0sB,4BArDK,SAqDuBtvB,GACxBA,EAAa4C,OAAO2sB,OAAQvvB,EAAa4C,OAAO2sB,MAAMzY,UAAUhC,OAAO,aAE3E0a,0BAxDK,SAwDqBxvB,GACtBA,EAAa4C,OAAO2sB,OAAQvvB,EAAa4C,OAAO2sB,MAAMzY,UAAUZ,IAAI,aAGxEmZ,qBA5DK,SA4DgBrvB,GAAc,IAAA6D,EAAArJ,KAC/BA,KAAK8yB,cAAgBttB,EAAa2M,MAClC,IAAI8iB,EAAQj1B,KAAKU,MAAMw0B,aAAa3vB,eAAeC,GAGnD/E,EAAEw0B,EAAMnwB,YAAY7C,GAAG,QAAS,wBAAyB,SAAAuC,GACrD6E,EAAK8rB,kBAAkB3vB,KAI3B/E,EAAEw0B,EAAMG,cAAcnzB,GAAG,QAAS,SAAAuC,GAC9B6E,EAAKypB,cAAgB,QAI7BuC,iBA3EK,SA2EY7vB,GACTA,EAAa8vB,aACbt1B,KAAKsK,IAAIT,IAAI,oBAAqB,CAAEvI,OAAQ,CAAEkX,eAAgBhT,EAAa9F,MACtEmO,KAAK,SAACC,GAAeynB,IAAaznB,EAASzM,KAAMmE,EAAagwB,gBAC9DrnB,MAAM,SAAC0K,GAAYvK,QAAQC,IAAI,iCAAmCsK,MAI/EvU,aAnFK,SAmFQovB,GACT1zB,KAAKqM,cAAcqnB,IAGvBrnB,cAvFK,SAuFSqnB,GAAW,IAAA9W,EAAA5c,KAGrB,GAAIA,KAAKU,MAAMw0B,aAAalyB,UAzInB,GAkJL,OANAhD,KAAK+yB,QAAU,GAEf/yB,KAAKU,MAAMw0B,aAAaltB,oBAExBhI,KAAKU,MAAMw0B,aAAa9xB,IAAIqyB,aAKhC,IAAI5yB,EAAY7C,KAAKU,MAAMw0B,aAAa7vB,eACpC0F,EAAmB/K,KAAKq0B,sBAAsBX,EAAW7wB,GAG7DyJ,GAAUA,EAAO,yCAEjBtM,KAAKsK,IAAIT,IAAI,UAAW,CAAEvI,OAAQyJ,EAAkBY,YAAa,IAAIC,EAAY,SAAC8pB,GAAQppB,EAASopB,MAC9F7nB,KAAK,SAACC,GAEH8O,EAAKmW,QAAUjlB,EAASzM,KAAKs0B,aAAe,GAExC/Y,EAAKmW,QAAQzpB,OAAS,IACtBsT,EAAKuW,aAAc,EACnBvW,EAAKkW,cAAgB,MAGzBlW,EAAKmW,QAAUnW,EAAKmW,QAAQ3vB,IAAI,SAAC/C,EAAM8R,GAKnC,OAJA9R,EAAK8R,MAAQA,EACb9R,EAAK+H,OAASwU,EAAKgY,YAAYv0B,GAC/BA,EAAK8G,WAAa9G,EAAK8G,WAAWV,OAAO,SAAAW,GAAE,OAAgB,IAAZA,EAAGhI,OAE3CiB,IAGXuc,EAAKlc,MAAMw0B,aAAa/rB,YAAYyT,EAAKmW,QAAQ3vB,IAAI,SAAAvE,GAAO,OAAOA,EAAEuJ,YAExE+F,MAAM,SAAC0K,GACJvK,QAAQC,IAAI,gCAAkCsK,MAI1D+c,gBArIK,WAwID51B,KAAK0F,QAAU1F,KAAKU,MAAMgF,QAAQnG,MAGlCS,KAAK61B,qBAGTC,wBA9IK,WA8IqB,IAAArN,EAAAzoB,KACtBA,KAAK+1B,mBAAmB,SAAC5yB,GACrBslB,EAAK/nB,MAAMw0B,aAAavtB,UAAUtE,IAAEE,OAAOJ,EAAS6yB,OAAOC,SAAU9yB,EAAS6yB,OAAOE,aACtF,SAACC,GACA7nB,QAAQC,IAAI,0CAA4C4nB,EAAa3nB,YAI7EunB,mBAtJK,SAsJcK,EAAkBC,GACjCjK,UAAUkK,YAAYC,mBAAmBH,EAAkBC,EAAkB,CAAEG,WAAY,OAG/FX,kBA1JK,WA0Je,IAAAY,EAAAz2B,KAOhB,GAJAA,KAAKU,MAAMw0B,aAAaltB,eAExBhI,KAAKU,MAAMw0B,aAAa9xB,IAAIqyB,aAEP,KAAjBz1B,KAAK0F,SAAmC,OAAjB1F,KAAK0F,QAO5B,OALA1F,KAAKU,MAAMw0B,aAAavtB,eAAUE,EAAW,QAG7C7H,KAAK+yB,QAAU,IAKnB,IAAIhoB,EAAmB/K,KAAKq0B,wBAE5Br0B,KAAKsK,IAAIT,IAAI,gBAAiB,CAAEvI,OAAQyJ,IACnC8C,KAAK,SAACC,GAEH2oB,EAAK5zB,UAAYQ,IAAEE,OAAOuK,EAASzM,KAAKwB,UAAUozB,SAAUnoB,EAASzM,KAAKwB,UAAUqzB,aAEvFroB,KAAK,WAAQ4oB,EAAK/1B,MAAMw0B,aAAavtB,UAAU8uB,EAAK5zB,aACpDsL,MAAM,SAAC0K,GACJvK,QAAQC,IAAI,iCAAmCsK,MAG3D6d,uBAvLK,WAwLwBj2B,EAAE,uBACRme,WAAW,SAElC+X,4BA3LK,WA4L6Bl2B,EAAE,4BACRme,WAAW,SAEvCuW,kBA/LK,SA+La3vB,GAGd,IAAIoxB,EAAgBn2B,EAAE,kBACtBm2B,EAAc/tB,OAGd,IAAI8E,EAAa,CACb6K,eAAgBhT,EAAa9F,GAC7Bm3B,iBAAkBrxB,EAAae,MAG/B+D,EAAMtK,KAAKsK,IAGfA,EAAIT,IAAI,uBAAwB,CAAEvI,OAAQqM,IAAcE,KAAK,SAACC,GAG1D8oB,EAAc/tB,KAAKiF,EAASzM,MAAMud,WAAW,QAG7CkY,WAAW5P,OAAO,cAAe,CAC7B6P,QAAW,6CAIfrY,IAAWsY,MAAM7Q,SAAS8Q,WAA1B,KAA+C,SAAUld,EAAIY,EAAUuc,GAEnE,IAAIpS,EAAQ/K,EAAG,GAAG+K,MAElB,GAAa,MAATA,GAAiBA,EAAMxb,OAAQ,CAE/B,IAAI6tB,GAAa,EAmCjB,OAjCA12B,EAAE22B,KAAKtS,EAAO,WAEV,IAWIuS,EAAoB52B,EAAE62B,QAAQt3B,KAAKZ,KAXb,CACtB,kBACA,2BACA,oEACA,aACA,YACA,qBACA,6EAI+D,GAAKY,KAAKuG,KAAKsmB,QAAQ,SAAW,EAYjGsK,EAVc,SAAdn3B,KAAKuG,WAAwC,IAAdvG,KAAKuG,SAI5B8wB,MAICr3B,KAAKu3B,KAAO,MAAMC,QAAQ,GAAM,SAU1CL,EAGP,OAAO,GAKf,IAAIM,EAAeb,EAActkB,KAAK,QACT,IAAIoM,IAAWsY,MAAMS,EAAc,CAC5DC,cAAc,EACdC,gBAAgB,IAGpBF,EAAax1B,GAAG,qBAAsB,SAAUuC,EAAG8T,GAEtBwe,WAAWc,cAEbtuB,OAAS,GAG5BgB,EAAIgP,KAAK,kBAAmB,IAAI2N,SAAS3O,EAAK,IAAK,CAC/Cuf,QAAS,CAAEC,eAAgB,yBAC5BjqB,KAAK,SAACC,GACL2pB,EAAaM,YAAYjqB,EAASzM,KAAKmN,WACxCL,MAAM,SAACL,GACN2pB,EAAaM,YAAYjqB,EAASzM,QACnCwkB,QAAQ,WACP,OAAO,MAKnB4R,EAAax1B,GAAG,SAAU,SAAUuC,GAChCA,EAAEsL,mBAGN,IAAIkoB,EAAcP,EAAanlB,KAAK,kBAChC2lB,EAAUR,EAAanlB,KAAK,cAGhC0lB,EAAY/1B,GAAG,SAAU,SAAUuC,GAE/B,GAAsB,IAAlBA,EAAEpC,OAAO7C,MAAa,CAGtB,IAAIoO,EAAa,CACbuqB,cAAe1zB,EAAEpC,OAAO7C,OAI5B+K,EAAIT,IAAI,uBAAwB,CAAEvI,OAAQqM,IAAcE,KAAK,SAACC,GAG1DmqB,EAAQE,QAGR13B,EAAE22B,KAAKtpB,EAASzM,KAAM,WAClB42B,EAAQ/d,OAAOzZ,EAAE,cAAcF,IAAIP,KAAKT,OAAO4d,KAAKnd,KAAKmd,gBAMjE8a,EAAQE,UAIhB,IAAIC,EAAoBX,EAAanlB,KAAK,sBACtC+lB,EAAiBZ,EAAanlB,KAAK,kDACnCgmB,EAAiBb,EAAanlB,KAAK,sFAGvC8lB,EAAkBn2B,GAAG,SAAU,SAAUuC,GAGrC6zB,EAAeE,SACfD,EAAeC,SAEX/zB,EAAEpC,OAAOia,SAETgc,EAAe93B,IAAI,IAAIyd,KAAK,WAAW,GACvCqa,EAAezc,KAAK,oBAAqBpX,EAAEpC,OAAOia,UAGlDgc,EAAe1c,WAAW,uBAKlC,IAAI6c,EAAYf,EAAanlB,KAAK,gBAC9BmmB,EAAQD,EAAU,GAAGE,mBACrBC,EAAWF,EAAMnyB,UAErBkyB,EAAUv2B,GAAG,SAAU,SAAUuC,GAC7B,IAAIo0B,EAAW,GAGXA,EADA54B,KAAK8kB,OAAS9kB,KAAK8kB,MAAMxb,OAAS,GACtBtJ,KAAKof,aAAa,0BAA4B,IAAIyZ,QAAQ,UAAW74B,KAAK8kB,MAAMxb,QAEjF9E,EAAEpC,OAAO7C,MAAMu5B,MAAM,MAAMC,MAItCN,EAAMnyB,UADNsyB,GAGkBD,QAMtClvB,QArZ+C,WAsZ3CzJ,KAAKsK,IAAMY,IAAMC,OAAO,CACpBC,QAASpL,KAAK6K,QACdQ,iBAAkB,SAAU/J,GACxB,OAAOgK,IAAGC,UAAUjK,EAAQ,CAAEkK,SAAS,EAAOC,WAAW,OAI7DzL,KAAK2D,cACL3D,KAAKmzB,aAAc,IAG3BtyB,QAja+C,WAma3Cb,KAAKU,MAAMgF,QAAQwK,QAGnBlQ,KAAKqE,MAAMwY,IAAI,eAAgB,WAC3B7c,KAAK0F,aAAUmC,IAIf7H,KAAK0J,gBAAkB1J,KAAK0J,eAAeC,IAAI,cAC/C3J,KAAK0F,QAAU1F,KAAK0J,eAAeG,IAAI,YACvC7J,KAAK41B,qIClcF52B,cAAIC,UAAU,yBAA0B,CACnDuL,WAAY,CACRwuB,kBAEJ33B,KAAM,WACF,MAAO,CACH43B,SAAU,GACV5Y,SAAU,OAGlBlgB,QAAQ,CACJ0jB,OADI,SACG2E,GAEH,OADAxoB,KAAKk5B,WAAa1Q,EACdA,EAAMlf,OAAS,EACR,GAGJtJ,KAAKi5B,SAASxyB,OAAO,SAAAirB,GACxB,OAAOA,EAAQnrB,KACV4yB,cACAC,WAAW5Q,EAAM2Q,kBAG9BE,eAbI,SAaW3Z,GACX,OAAOA,EAAOnZ,MAGlB+yB,mBAjBI,WAkBA,IAAIC,EAAc94B,EAAE,oCAChB+4B,EAAc/4B,EAAE,wDAChBg5B,EAAah5B,EAAE,iDACfi5B,EAAej5B,EAAE,uCAGrB84B,EAAYI,OACZH,EAAYG,OACZF,EAAWE,OACXD,EAAaC,QAGjBC,oBA9BI,WA+BA,IAAIL,EAAc94B,EAAE,oCAChB+4B,EAAc/4B,EAAE,wDAChBg5B,EAAah5B,EAAE,iDACfi5B,EAAej5B,EAAE,uCAKrB,GAFAT,KAAKs5B,qBAEDt5B,KAAKqgB,SAOT,OAFAqZ,EAAa7iB,OAEN7W,KAAKqgB,SAAS/Y,WACjB,KAAK,EACDmyB,EAAW5iB,OACX,MACJ,KAAK,EACD4iB,EAAW5iB,OACX2iB,EAAY3iB,OACZ,MACJ,KAAK,EACL,KAAK,EACL,KAAK,EACL,KAAK,EACD4iB,EAAW5iB,OACX2iB,EAAY3iB,OACZ0iB,EAAY1iB,SAIxBgjB,aAhEI,SAgESr1B,GACT,IAAM+B,EAAO/B,EAAEpC,OAAO8mB,QAAQ3iB,KAE9BvG,KAAKqgB,SAAW,CACZ9Z,KAAMA,EACNe,UAAWsC,SAASpF,EAAEpC,OAAO7C,OAC7Bu6B,WAAW,GAGfC,kBAAW,CACPC,QAAS,QACTC,cAAe,gBACfC,YAAa,cACbC,WAAY5zB,KAGpB6zB,OAhFI,SAgFG1a,GAAQ,IAAA5e,EAAAd,KAEN0f,EAsBD1f,KAAKqgB,SAAW,CACZ9Z,KAAMmZ,EAAOnZ,KACbe,UAAWsC,SAAS8V,EAAOpY,UAAU5H,IACrCo6B,WAAW,EACXO,oBAAqB3a,EAAO2a,sBAxBhC3a,EAAS1f,KAAKi5B,SAASxyB,OAAO,SAAAirB,GAC1B,OAAOA,EAAQnrB,KACV4yB,gBAAkBr4B,EAAKo4B,cAGpB5vB,OAORtJ,KAAKqgB,SAAW,CACZ9Z,KAAMmZ,EAAO,GAAGnZ,KAChBe,UAAWsC,SAAS8V,EAAO,GAAGpY,UAAU5H,IACxCo6B,WAAW,EACXO,oBAAqB3a,EAAO,GAAG2a,qBAVnCr6B,KAAKqgB,SAAW,CACZ9Z,KAAM,WACNe,UAAW,EACXwyB,WAAW,GAmBvBC,kBAAW,CACPC,QAAS,QACTC,cAAe,gBACfC,YAAa,iBACbC,WAAYn6B,KAAKqgB,SAAS9Z,OAG9BvG,KAAK45B,uBAETpQ,MAzHI,WA0HAxpB,KAAKqgB,SAAW,KAEhB0Z,kBAAW,CACPC,QAAS,QACTC,cAAe,gBACfC,YAAa,siBCpIdl7B,cAAIC,UAAU,wBAAyB,CACpDoC,KAAM,iBAAO,CACXi5B,UAAW,GACXC,IAAK,CACHC,gBAAiB,6CACjBC,OAAQ,0CACRC,YAAa,oDACbC,YAAa,iDACbC,qCAAsC,6DAExCC,iBAAiB,EACjBC,wBAAwB,IAE1Bh7B,SAAU,CACRi7B,gBAAiB,WACf,GAAI/6B,KAAK66B,gBAAiB,OAAO,EAEjC,IAAIG,EAA+Bh7B,KAAKs6B,UAAU7zB,OAAO,SAAU8W,GACjE,OAAoB,IAAbA,EAAE0d,QAA2B,IAAX1d,EAAE2d,OAGzBC,EAAmCn7B,KAAKs6B,UAAU7zB,OAAO,SAAU8W,GACrE,OAAoB,IAAbA,EAAE0d,QAA2B,IAAX1d,EAAE2d,OAc7B,QATIl7B,KAAK86B,uBAELK,EAAiC7xB,QAAU,GAC3C0xB,EAA6B1xB,QAAU,EAGnB6xB,EAAiC7xB,QAAU,IAKrE8xB,iBAAkB,WAChB,GAAIp7B,KAAK66B,gBAAiB,OAAO,EAEjC,IAAIG,EAA+Bh7B,KAAKs6B,UAAU7zB,OAAO,SAAU8W,GACjE,OAAoB,IAAbA,EAAE0d,QAA2B,IAAX1d,EAAE2d,OAG7B,IAAKl7B,KAAKq7B,aACR,OAA+C,IAAxCL,EAA6B1xB,OAGtC,IAAI6xB,EAAmCn7B,KAAKs6B,UAAU7zB,OAAO,SAAU8W,GACrE,OAAoB,IAAbA,EAAE0d,QAA2B,IAAX1d,EAAE2d,OAG7B,OAAIl7B,KAAK86B,uBAELK,EAAiC7xB,QAAU,GAC3C0xB,EAA6B1xB,QAAU,EAIpC6xB,EAAiC7xB,QAAU,GAEpDgyB,gBAjDQ,WAkDN,IAAIhB,EAAY,GAKhB,OAJAt6B,KAAKs6B,UAAU/wB,QAAQ,SAACgU,GACtBA,EAAEge,kBAAoBnlB,IAAOmH,EAAEie,UAAUllB,OAAO,sBAChDgkB,EAAUjyB,KAAKkV,KAEV+c,GAETpV,SAzDQ,WA0DN,OAAOC,MAAMC,aAGjBvkB,QA1EoD,WA2ElDb,KAAKy7B,uBACLz7B,KAAK46B,wCAEPz6B,QAAS,CACPq6B,gBADO,WAEL,IAAIn5B,EAAO,GAEPrB,KAAK07B,aACPr6B,EAAKs6B,GAAK37B,KAAK07B,YAMjBj7B,EAAEO,KAAK,CACLC,IAAKjB,KAAKu6B,IAAIC,gBACdp7B,KAAM,MACNw8B,OAAQ,MACRv6B,KAAMA,IACLw6B,KACD,SAAUlW,GACR3lB,KAAKs6B,UAAY3U,GACjBmW,KAAK97B,QAZPsO,QAAQC,IAAI,wDAgBhBqsB,qCAvBO,WAwBL,IAAIv5B,EAAO,GAEPrB,KAAK07B,cACPr6B,EAAKq6B,YAAc17B,KAAK07B,YAK1Bj7B,EAAEO,KAAK,CACLC,IAAKjB,KAAKu6B,IAAIK,qCACdx7B,KAAM,MACNw8B,OAAQ,MACRv6B,KAAMA,IACLw6B,KACD,SAAUlW,GACR3lB,KAAK86B,uBAAyBnV,GAC9BmW,KAAK97B,SAIX+7B,yBA5CO,WA8CLt7B,EAAE,oCAAoC6Z,SAGtC7Z,EAAEO,KAAK,CACLC,IAAKjB,KAAKu6B,IAAII,YACdv7B,KAAM,MACNw8B,OAAQ,MACRv6B,KAAM,CACJq6B,YAAa17B,KAAK07B,eAEnBG,KAAK77B,KAAKg8B,qBAGfA,mBA3DO,SA2DYrW,GAEjBllB,EAAE,QAAQyZ,OAAOyL,EAAKsW,MAGtB,IAAIrlB,EAASpW,OAAOC,EAAE,oCAGtBmW,EAAO8P,MAAM,QAGbvB,MAAM+W,eAAetlB,EAAQ,CAC3BulB,YAAa,MACbC,kBAAmB,CACjB,kBACA,aACA,YACA,qBACA,6EAIJ3tB,IAAIC,QAAQ,oCAGZkI,EAAOtE,KAAK,QAAQqH,SAAS,CAC3B0iB,cAAer8B,KAAKs8B,4BAIxBA,yBAzFO,SAyFkBhkB,GACvB,IAIIlZ,EAJAwX,EAASpW,OAAOC,EAAE,oCAEhB2Y,EAAW,IAAI6N,SAASxmB,EAAE6X,GAAM,IAHTikB,GAAA,EAAAC,GAAA,EAAAC,OAAA50B,EAAA,IAO7B,QAAA60B,EAAAC,EAAyBvjB,EAASwjB,UAAlCC,OAAAC,cAAAP,GAAAG,EAAAC,EAAAxP,QAAA0O,MAAAU,GAAA,EAA6C,KAAAQ,EAAAC,EAAAN,EAAAn9B,MAAA,GAAnCgnB,EAAmCwW,EAAA,GAA9Bx9B,EAA8Bw9B,EAAA,GAC/B,0BAARxW,IACFnnB,EAAOG,IATkB,MAAA09B,GAAAT,GAAA,EAAAC,EAAAQ,EAAA,YAAAV,GAAA,MAAAI,EAAAO,QAAAP,EAAAO,SAAA,WAAAV,EAAA,MAAAC,GAaxBr9B,EAKLqB,EAAEO,KAAK,CACLC,IAAKR,EAAE6X,GAAMsD,KAAK,UAAY,SAAWxc,EACzCA,KAAM,OACNw8B,OAAQ,OACRuB,QAAS,sBACTC,aAAa,EACbC,aAAa,EACbC,OAAO,EACPj8B,KAAM+X,IACLyiB,KACD,SAAUlW,GACR/O,EAAO8P,MAAM,QAERf,EAAKC,UA0BRnX,IAAIC,QAAQ,SAAU,CACpBtP,KAAM,UACN2P,KAAM,8BACNP,QAASmX,EAAKzQ,WA3BhBzG,IAAIC,QAAQ,SAAU,CACpBtP,KAAM,UACN2P,KAAM,mBACNP,QAASmX,EAAKzQ,UAIZyQ,EAAK4X,MACPv9B,KAAKs6B,UAAUjyB,KAAKsd,EAAK4X,MAG3B98B,EAAEO,KAAK,CACLC,IAAK,sDACL7B,KAAM,OACNw8B,OAAQ,OACR/D,QAAS,CAACC,eAAgB,qCAC1BwF,OAAO,EACPj8B,KAAM,CACJq6B,YAAa17B,KAAK07B,iBAYxBI,KAAK97B,OAjDPsO,QAAQC,IAAI,uCAqDhBivB,mBA5JO,SA4JYC,EAAYC,GAC7B,IAAIpD,EAAYt6B,KAAKs6B,UAAUl3B,IAAI,SAAUma,GAI3C,OAHIA,EAAEoe,KAAO8B,IACXlgB,EAAE0d,OAASyC,GAENngB,IAETvd,KAAKs6B,UAAYA,GAGnBqD,sBAtKO,SAsKen5B,GACpB,IAAIi5B,EAAah9B,EAAE+D,EAAE8gB,eAAe1J,KAAK,oBAGzCnb,EAAE,uCAAuC6Z,SAGzC,IAAIjZ,EAAO,CACTq6B,YAAa17B,KAAK07B,YAClB+B,WAAYA,GAIdh9B,EAAEO,KAAK,CACLC,IAAKjB,KAAKu6B,IAAIG,YACdt7B,KAAM,MACNw8B,OAAQ,MACRv6B,KAAMA,IACLw6B,KAAK77B,KAAK49B,wBAGfA,sBA3LO,SA2LejY,GAEpBllB,EAAE,QAAQyZ,OAAOyL,EAAKsW,MAGtB,IAAIrlB,EAASpW,OAAOC,EAAE,uCAGtBmW,EAAO8P,MAAM,QAGb9P,EAAOtE,KAAK,QAAQqH,SAAS,CAC3B0iB,cAAer8B,KAAK69B,+BAIxBA,4BA3MO,SA2MqBvlB,GAC1B,IAIIoN,EAJA9O,EAASpW,OAAOC,EAAE,uCAEhB2Y,EAAW,IAAI6N,SAASxmB,EAAE6X,GAAM,IAHNwlB,GAAA,EAAAC,GAAA,EAAAC,OAAAn2B,EAAA,IAOhC,QAAAo2B,EAAAC,EAAyB9kB,EAASwjB,UAAlCC,OAAAC,cAAAgB,GAAAG,EAAAC,EAAA/Q,QAAA0O,MAAAiC,GAAA,EAA6C,KAAAK,EAAAnB,EAAAiB,EAAA1+B,MAAA,GAAnCgnB,EAAmC4X,EAAA,GAA9B5+B,EAA8B4+B,EAAA,GAC/B,WAAR5X,IACFb,EAASnmB,IATmB,MAAA09B,GAAAc,GAAA,EAAAC,EAAAf,EAAA,YAAAa,GAAA,MAAAI,EAAAhB,QAAAgB,EAAAhB,SAAA,WAAAa,EAAA,MAAAC,GAa3BtY,EAKLjlB,EAAEO,KAAK,CACLC,IAAKR,EAAE6X,GAAMsD,KAAK,UAClBxc,KAAM,MACNw8B,OAAQ,MACRuB,QAAS,sBACTC,aAAa,EACbC,aAAa,EACbC,OAAO,EACPj8B,KAAM+X,IACLyiB,KACD,SAAUlW,GACR/O,EAAO8P,MAAM,QAERf,EAAKC,UAaRnX,IAAIC,QAAQ,SAAU,CACpBtP,KAAM,UACN2P,KAAM,8BACNP,QAASmX,EAAKzQ,WAdhBzG,IAAIC,QAAQ,SAAU,CACpBtP,KAAM,UACN2P,KAAM,mBACNP,QAASmX,EAAKzQ,UAIhBlV,KAAKw9B,mBAAmB5zB,SAAS8b,GAAS,KAU5CoW,KAAK97B,OApCPsO,QAAQC,IAAI,+BAwChB6vB,sBAjQO,SAiQe55B,GACpB,IAAInD,EAAO,CACTs6B,GAAI37B,KAAK07B,YACThW,OAAQjlB,EAAE+D,EAAE8gB,eAAe1J,KAAK,qBAElCnb,EAAEO,KAAK,CACLC,IAAKjB,KAAKu6B,IAAIE,OACdr7B,KAAM,MACNw8B,OAAQ,MACRv6B,KAAMA,IACLw6B,KACD,SAAUlW,GACR3lB,KAAKq+B,yBAAyBh9B,EAAKqkB,OAAQC,IAC3CmW,KAAK97B,QAIXq+B,yBAlRO,SAkRkB3Y,EAAQC,GAC1BD,EAKAC,EAAKC,UAcJD,EAAKzQ,SACPzG,IAAIC,QAAQ,SAAU,CACpBtP,KAAM,UACN2P,KAAM,8BACNP,QAASmX,EAAKzQ,WAhBdyQ,EAAKzQ,SACPzG,IAAIC,QAAQ,SAAU,CACpBtP,KAAM,UACN2P,KAAM,mBACNP,QAASmX,EAAKzQ,UAKlBlV,KAAKw9B,mBAAmB5zB,SAAS8b,GAAS,IAf1CpX,QAAQC,IAAI,wBA4BhBktB,qBAhTO,WAgTgB,IAAA36B,EAAAd,KACJ,IAAIs+B,qBAAqB,SAAC1B,GACzCA,EAAQrzB,QAAQ,SAACg1B,GACXA,EAAMC,gBACR19B,EAAK05B,sBAKFiE,QAAQz+B,KAAK0+B,snBC3Yb1/B,cAAIC,UAAU,sBAAuB,CAChDoC,KAAM,iBAAO,CACTiJ,IAAKY,IAAMC,OAAO,CACdC,QAAS,yBAEb+U,SAAS,EACTwe,QAAQ,EACRC,kBAAmB,GACnBC,mBAAoB,GACpBC,qBAAqB,EACrBjE,iBAAiB,EACjBkE,cAAe,CACX7Y,KAAM,EACN8Y,MAAO,EACPC,SAAU,KAGlBx1B,QAjBgD,WAkB5C,IAAMqP,EAAQ9Y,KAGd8Y,EAAMomB,eAENv9B,SAASwC,iBAAiB,0BAA2B,WACjD2U,EAAMqmB,wBAEN1+B,IAAE,WAAWwB,GAAG,QAAS,mDAAoD,WAEzE6W,EAAMomB,oBAIlBr+B,QAhCgD,WAiC5Cb,KAAKo/B,iBAAiBp/B,KAAK8+B,sBAE/B3+B,QAAS,CACL++B,aADK,WACU,IAAAp+B,EAAAd,KAC4B,IAAnCA,KAAK6+B,mBAAmBv1B,QACxBtJ,KAAKsK,IAAIT,IAAI,gBAAiB,CAAEvI,OAAQ,CACpCo6B,YAAa17B,KAAK07B,eAClB7tB,KAAK,SAACC,GAGNhN,EAAKg+B,oBAAsBhxB,EAASzM,KAAKy9B,oBAGzCh+B,EAAK+9B,mBAAqB/wB,EAASzM,KAAKuqB,UAAUxoB,IAAI,SAAAuqB,GAOlD,OAJIA,EAAEvuB,MAAQ0B,EAAKi+B,cAAc7Y,MAAQyH,EAAEvuB,MAAQ0B,EAAKi+B,cAAcC,QAClErR,EAAEC,QAAUD,EAAEC,QAAQyR,YAGnB1R,IAGP7sB,EAAKg+B,oBAELh+B,EAAK89B,kBAAoB99B,EAAK+9B,mBAAmBp4B,OAAO,SAAAknB,GAAC,OAAIxjB,MAAMm1B,QAAQ3R,EAAEC,SAAWD,EAAEC,QAAQtkB,OAAS,EAAiB,IAAbqkB,EAAEC,UAGjH9sB,EAAK89B,kBAAkBv2B,KAAvB4Y,EAAA,GAAgCngB,EAAK+9B,mBAAmB,QAKxEU,cA/BK,WA+BW,IAAAl2B,EAAArJ,KACZA,KAAKmgB,SAAU,EAEf,IAAIyL,EAAY5rB,KAAK4+B,kBAAkBx7B,IAAI,SAAAuqB,GAGvC,IAAIT,EAAQjM,EAAA,GAAO0M,GAKnB,OAFKxjB,MAAMm1B,QAAQpS,EAASU,WAAUV,EAASU,QAAUV,EAASU,QAAQkL,SAEnE5L,IAGXltB,KAAKsK,IAAIgP,KAAK,iBAAkB,CAAEoiB,YAAa17B,KAAK07B,YAAa9P,UAAWA,IAC3E/d,KAAK,SAACC,GAGHW,IAAIC,QAAQ,SAAZuS,EAAA,GAA2BnT,EAASzM,KAAK6f,aAAzC,CAAuD1S,QAASV,EAASzM,KAAK6f,aAAaC,WAEtFrT,EAASzM,KAAK0kB,YAGfvlB,OAAOC,EAAE,8BAA8BimB,MAAM,QAG7Crd,EAAKy1B,qBAAsB,KAGlCjZ,QAAQ,WACLxc,EAAK8W,SAAU,KAGvBqf,gBAhEK,SAgEWC,GACZ,IAAIC,EAKAA,EAFAD,EAAiB9f,SAAW8f,EAAiB9f,QAAQvc,IAAI,SAASmP,GAAK,OAAOA,EAAEotB,eAAgBC,KAAK,SAAArd,GAAC,OAAIA,IAEzFkd,EAAiB9f,QAAQrN,KAAK,SAAAutB,GAAC,OAAIA,EAAEngC,KAAO+/B,EAAiB7R,UAAS+R,aAGtEF,EAAiBE,aAGtC,IAAIA,EAAY1e,EAAA,GAAOjhB,KAAK6+B,mBAAmBvsB,KAAK,SAAAqb,GAAC,OAAIA,EAAEjuB,KAAOggC,KAGlE,OAAIC,IAAiB3/B,KAAK4+B,kBAAkBx7B,IAAI,SAASuqB,GAAK,OAAOA,EAAEjuB,KAAOqkB,SAAS2b,IAG/EC,EAAavgC,MAAQY,KAAK++B,cAAc7Y,MAAQyZ,EAAavgC,MAAQY,KAAK++B,cAAcC,MACxFW,EAAa/R,QAAU,GAEvB+R,EAAa/R,QAAU,GAGpB+R,GAGJ,MAEXG,iBA7FK,SA6FYC,GAGb,IAAIA,EAAgBplB,WAAWolB,EAAgBnS,SAAsC,IAA3BmS,EAAgBnS,SAAiBzjB,MAAMm1B,QAAQS,EAAgBnS,SAAWmS,EAAgBnS,QAAQtkB,OAAS,EAAIy2B,EAAgBnS,QAAQtkB,OAAS,GAAU,CAChN,IAAI4jB,EACA8S,EAAuBhgC,KAAK4+B,kBAAkBx7B,IAAI,SAASuqB,GAAK,OAAOA,EAAEjuB,KAAOmtB,QAAQkT,EAAgBrgC,IAGxGsgC,EAAwBhgC,KAAK4+B,kBAAkBt1B,OAAS,GAGxDtJ,KAAK4+B,kBAAkB5wB,OAAOgyB,EAAuB,GACrD9S,EAAWltB,KAAK4+B,kBAAkB5+B,KAAK4+B,kBAAkBt1B,OAAS,IAElE4jB,EAAW6S,EAGf,IAAMJ,EAAe3/B,KAAKw/B,gBAAgBtS,GAC1C,GAAIyS,IAGA3/B,KAAK4+B,kBAAkBv2B,KAAKs3B,IAGvBA,EAAahlB,UAAU,CAExB,IAAMslB,EAAqBjgC,KAAKw/B,gBAAgBG,GAG5CM,GAAoBjgC,KAAK4+B,kBAAkBv2B,KAAK43B,MAKpEb,gBA/HK,SA+HW7/B,GAEZkB,IAAE,yDAAyDud,KAAK,WAAYze,IAEhF4/B,sBAnIK,WAmIkB,IAAAviB,EAAA5c,KACnBA,KAAKsK,IAAIgP,KAAK,mBAAoB,CAAEoiB,YAAa17B,KAAK07B,cAAe7tB,KAAK,SAACC,GACvE8O,EAAKie,gBAAkB/sB,EAASzM,SAI5Cf,MAAO,CACHw+B,oBAAqB,SAASv/B,GAC1BS,KAAKo/B,iBAAiB7/B,wCClLlCX,EAAAC,EAAAC,GAAA,IAAAC,EAAAH,EAAA,GAEeI,cAAIC,UAAU,MAAO,CAChCC,SAAQ,gMAKRC,MAAM,CACFO,GAAIL,OACJkI,MAAOlI,OACPmT,SAAU/S,QACVmT,UAAWnT,QACXygC,cAAe7gC,OACf0S,cAAe1S,QAEnBc,QAAQ,CACJuY,iBADI,SACayI,GACb,OAAO3gB,OAAOC,EAAET,KAAK0+B,KAAK71B,KAAKsY,KAGvCtgB,QAnBgC,aAqBhC4I,QArBgC,kCCGpC02B,EAAOC,QAL0B,CAC7BC,MAAO,EACPC,OAAQ,wBCDZ,IAAAnf,EAAcviB,EAAQ,KAEtB,iBAAAuiB,MAAA,EAA4Cgf,EAAAnhB,EAASmC,EAAA,MAOrD,IAAAxB,EAAA,CAAe4gB,KAAA,EAEfC,eAPAA,EAQAC,gBAAA54B,GAEajJ,EAAQ,IAARA,CAA2DuiB,EAAAxB,GAExEwB,EAAAuf,SAAAP,EAAAC,QAAAjf,EAAAuf,6BCjBA,IAAAt9B,EAAA,CACAu9B,OAAA,IACAC,UAAA,KAIA,SAAAC,EAAAC,GACA,IAAAphC,EAAAqhC,EAAAD,GACA,OAAAliC,EAAAc,GAEA,SAAAqhC,EAAAD,GACA,IAAAliC,EAAA2T,EAAAnP,EAAA09B,GAAA,CACA,IAAAt8B,EAAA,IAAAw8B,MAAA,uBAAAF,EAAA,KAEA,MADAt8B,EAAAgN,KAAA,mBACAhN,EAEA,OAAApB,EAAA09B,GAEAD,EAAA1Y,KAAA,WACA,OAAAtoB,OAAAsoB,KAAA/kB,IAEAy9B,EAAAI,QAAAF,EACAZ,EAAAC,QAAAS,EACAA,EAAAnhC,GAAA,yBCvBA,IAAA0D,EAAA,CACA89B,wCAAA,IACAC,2CAAA,IACAC,0CAAA,IACAC,6CAAA,IACAC,0CAAA,GACAC,6CAAA,GACAC,6CAAA,GACAC,gDAAA,GACAC,2CAAA,IACAC,8CAAA,IACAC,2CAAA,GACAC,8CAAA,GACAC,sCAAA,IACAC,yCAAA,IACAC,4CAAA,IACAC,+CAAA,IACAC,mCAAA,IACAC,sCAAA,IACAC,qDAAA,IACAC,wDAAA,IACAC,0CAAA,IACAC,6CAAA,IACAC,8CAAA,IACAC,iDAAA,IACAC,gDAAA,IACAC,mDAAA,IACAC,kDAAA,IACAC,qDAAA,IACAC,mDAAA,GACAC,sDAAA,GACAC,6CAAA,IACAC,gDAAA,IACAC,qDAAA,GACAC,wDAAA,GACAC,uDAAA,IACAC,0DAAA,IACAC,2BAAA,GACAC,8BAAA,GACAC,kCAAA,IACAC,qCAAA,IACAC,oCAAA,IACAC,uCAAA,IACAC,yCAAA,IACAC,4CAAA,IACAC,+CAAA,IACAC,kDAAA,IACAC,iDAAA,IACAC,oDAAA,IACAC,mDAAA,IACAC,sDAAA,IACAC,oCAAA,IACAC,uCAAA,IACAC,6CAAA,IACAC,gDAAA,IACAC,qDAAA,IACAC,wDAAA,IACAC,yBAAA,IACAC,4BAAA,IACAC,2CAAA,IACAC,8CAAA,IACAC,uCAAA,IACAC,0CAAA,IACAC,4CAAA,IACAC,+CAAA,IACAC,0CAAA,IACAC,6CAAA,IACAC,6CAAA,IACAC,gDAAA,IACAC,4DAAA,GACAC,+DAAA,GACAC,8CAAA,IACAC,iDAAA,IACAC,gDAAA,IACAC,mDAAA,IACAC,gEAAA,IACAC,mEAAA,IACAC,iDAAA,IACAC,oDAAA,IACAC,gDAAA,IACAC,mDAAA,IACAC,oDAAA,IACAC,uDAAA,IACAC,gDAAA,IACAC,mDAAA,IACAC,6CAAA,IACAC,gDAAA,IACAC,4BAAA,GACAC,+BAAA,GACAC,iDAAA,IACAC,oDAAA,IACAC,iCAAA,GACAC,oCAAA,GACAC,wBAAA,GACAC,2BAAA,GACAC,yBAAA,IACAC,4BAAA,IACAC,UAAA,GACAC,aAAA,GACAC,UAAA,IACAC,aAAA,IACAC,mBAAA,GACAC,sBAAA,IAIA,SAAA1G,EAAAC,GACA,IAAAphC,EAAAqhC,EAAAD,GACA,OAAAliC,EAAAc,GAEA,SAAAqhC,EAAAD,GACA,IAAAliC,EAAA2T,EAAAnP,EAAA09B,GAAA,CACA,IAAAt8B,EAAA,IAAAw8B,MAAA,uBAAAF,EAAA,KAEA,MADAt8B,EAAAgN,KAAA,mBACAhN,EAEA,OAAApB,EAAA09B,GAEAD,EAAA1Y,KAAA,WACA,OAAAtoB,OAAAsoB,KAAA/kB,IAEAy9B,EAAAI,QAAAF,EACAZ,EAAAC,QAAAS,EACAA,EAAAnhC,GAAA,qCCpHO,SAAS8nC,EAAYlvB,GACxB,OAAO9X,OAAOymB,SAAW,IAAIA,SAAS3O,EAAK,IAAMA,EAAKmvB,YAR1D7oC,EAAAC,EAAAC,GAAAF,EAAA2e,EAAAze,EAAA,gCAAA0oC,sBCKArH,EAAOC,QALe,CAClB3vB,IAAK,EACLC,KAAM,qBCIVyvB,EAAOC,QANiB,CACpBtoB,QAAS,EACT4vB,QAAS,EACT3yB,QAAS,kFCDE/V,cAAIC,UAAU,aAAc,CACvCC,SAAQ,0YAQRC,MAAM,CACFO,GAAI,CACAN,KAAMC,OACNC,QAAS,MAEbqoC,QAAS,CACLvoC,KAAMC,OACNC,QAAS,MAEbC,MAAO,CACHH,KAAM,CAACC,OAAQM,QACfL,QAAS,MAEbM,SAAU,CACNR,KAAMS,OACNP,QAAS,OAGjBQ,SAAS,CACLC,QADK,WAED,OAAmB,OAAZC,KAAKN,GAAL,UAAAO,OAA6BD,KAAKN,IAAlC,UAAAO,OAAmDD,KAAKE,QAGvEC,QAAQ,CACJC,WADI,SACOC,GACP,OAAOA,EAAKX,KAAOM,KAAKT,OAE5BqoC,OAJI,SAIG1lC,GACHlC,KAAKmC,MAAM,QAASD,EAAME,OAAO7C,4CCvC7CX,EAAAC,EAAAC,GAAA,IAAAC,EAAAH,EAAA,GAEeI,cAAIC,UAAU,oBAAqB,CAC9CC,SAAQ,2fAYRmC,KAAM,WACF,MAAO,CACHwmC,gBAAiB,uBACjBC,kBAAkB,EAClBC,sBAAuB,cAG/B5oC,MAAM,CACFO,GAAI,CACAN,KAAMC,OACNC,QAAS,MAEbm5B,MAAO,CACHr5B,KAAMC,OACNC,QAAS,IAEbmS,OAAQ,CACJrS,KAAMC,OACNsb,UAAU,GAEdpb,MAAO,CACHH,KAAMC,OACNC,QAAS,IAEb6d,KAAM,CACF/d,KAAMC,OACNC,QAAS,IAEb0oC,YAAa,CACT5oC,KAAMC,OACNC,QAAS,IAEb0iB,SAAU,CACN5iB,KAAMK,QACNH,SAAS,GAEb2oC,YAAa,CACT7oC,KAAMK,QACNH,SAAS,GAEb+B,KAAOxB,QAEXC,SAAS,CACLC,QADK,WAED,OAAmB,OAAZC,KAAKN,GAAcM,KAAKN,GAAxB,cAAAO,OAA2CD,KAAKE,6HCrDpDlB,cAAIC,UAAU,oBAAqB,CAC9CmS,QAASC,UACThQ,KAF8C,WAG1C,MAAO,CACH6mC,mBAAoBh9B,IAAMC,OAAO,CAC7BC,QAAS,6BACTC,iBAAkB,SAAS/J,GACvB,OAAOgK,IAAGC,UAAUjK,EAAQ,CAAEkK,SAAS,EAAOC,WAAW,EAAMC,WAAW,SAK1FvL,QAAQ,CACJoR,cAAenN,IAAS,SAAUlC,GAAO,IAAApB,EAAAd,KACjCwR,EAA8B,OAAvBtP,EAAME,OAAO7C,MAAb,GAAAU,OAAiCD,KAAKyR,QAAtCxR,OAA+CiC,EAAME,OAAO7C,OAAU,GAEjFS,KAAKkoC,mBAAmBr+B,IAAI,oBAAqB,CACzCvI,OAAQ,CAAEoQ,iBAAkBF,KAC7B3D,KAAK,SAACC,GACLhN,EAAKgnC,iBAAmBt2B,IAAS1Q,EAAK2Q,SAA0B,MAAjB3D,EAASzM,MAAoC,MAApByM,EAASzM,KAAK3B,IACtFoB,EAAKqB,MAAM,QAA0B,MAAjB2L,EAASzM,KAAeyM,EAASzM,KAAK3B,GAAK,IAC/DoB,EAAKqB,MAAM,qBAAuC,MAAjB2L,EAASzM,KAAeyM,EAASzM,KAAKkF,KAAO,IAC9EzF,EAAKqB,MAAM,cAAeD,EAAME,OAAO7C,SACxC4O,MAAM,SAACC,GACNtN,EAAKgnC,kBAAmB,EACxBx5B,QAAQC,IAAI,YAAaH,EAAOI,YAEvC,yCCjCE,SAASurB,EAAY73B,GAUhC,GAAI1B,OAAO2nC,GAAI,CACX,IAAIC,IATA5nC,OAAO2nC,IACU3nC,OAAO2nC,GAAGE,SACG,GACVx+B,IAAI,QAOxBu+B,GACAD,GAAGC,EAAU,QAASlmC,IAblCtD,EAAAC,EAAAC,GAAAF,EAAA2e,EAAAze,EAAA,4BAAAi7B,qCCAAn7B,EAAAC,EAAAC,GAAAF,EAAA2e,EAAAze,EAAA,+BAAAmF,IAAArF,EAAA2e,EAAAze,EAAA,oCAAAoF,IAAAtF,EAAA2e,EAAAze,EAAA,4BAAAwpC,IAAA,IAAAC,EAAA3pC,EAAA,GAAA4pC,EAAA5pC,EAAAuQ,EAAAo5B,GAEMhiB,EAAM/lB,OAAOioC,eAGNxkC,EAAU,iCAAAhE,OAFP,QAEO,yBAAAA,OAAmEsmB,GAE7EriB,EAAkB,CAC3BwkC,SAAU,IACVC,YAAa,EACbC,QAAS,EACTC,YAAa,kLACbC,aAAa,GAGJR,EAAUjlC,IAAEuF,QAAQ,CAC7BG,UAAW,WACXC,SAAU,CAAC,GAAI,IACfE,WAAY,CAAC,GAAI,uCClBrBtK,EAAAC,EAAAC,GAAA,IAAAuW,EAAAzW,EAAA,GAAA0W,EAAA1W,EAAAuQ,EAAAkG,GAAAE,EAAA3W,EAAA,GAGeI,cAAIC,UAAU,YAAa,CACtCC,SAAQ,0tBAcRC,MAAM,CACFO,GAAI,CAAEN,KAAMC,OAAQC,QAAS,MAC7BypC,SAAU1pC,OACV2pC,OAAQ3pC,OACRo5B,MAAOp5B,OACPyC,YAAa,CAAE1C,KAAMC,OAAQC,QAAS,kBAE1CQ,SAAS,CACLmpC,OADK,WAED,OAAmB,OAAZjpC,KAAKN,GAAL,QAAAO,OAA2BD,KAAKN,IAAhC,QAAAO,OAA+CD,KAAKE,OAE/DgpC,KAJK,WAKD,OAAmB,OAAZlpC,KAAKN,GAAL,MAAAO,OAAyBD,KAAKN,IAA9B,MAAAO,OAA2CD,KAAKE,QAG/DC,QAAQ,CACJgW,WADI,SACOgzB,GACP,OAAOA,QAAsC/yB,IAAO+yB,EAAM/yB,IAAOC,UAAUC,OAAO,KAAO,IAE7F8yB,UAJI,SAIM7pC,GACN,OAAO6W,IAAO7W,EAAO,MAEzB8pC,YAPI,SAOQ9pC,GACR,IAAI4pC,EAAOnpC,KAAKopC,UAAU7pC,GAC1B,OAAO4pC,EAAKG,UAAYH,EAAKI,QAAQ,OAAOC,aAAY,GAAQ,MAEpEC,UAXI,SAWMlqC,GACN,IAAI4pC,EAAOnpC,KAAKopC,UAAU7pC,GAC1B,OAAO4pC,EAAKG,UAAYH,EAAKO,MAAM,OAAOF,aAAY,GAAQ,MAElEG,2BAfI,WAgBA,OAAOvzB,IAAOwzB,aAAaC,gBAAgBxmC,EAAE81B,gBAGrDt4B,QAjDsC,WAiD7B,IAAAC,EAAAd,KACD8pC,EAAgB9pC,KAAK2pC,6BAEzBnpC,OAAOC,EAAET,KAAKU,MAAMqoC,UAAUgB,WAAW,CACrCC,UAAW,EACXC,WAAW,EACXC,gBAAgB,EAChBxoC,SAAUC,SAASC,gBAAgBC,KACnCsoC,UAAU,EACV7zB,OAAQwzB,IACT7nC,GAAG,YAAa,SAACuC,GAChB1D,EAAKqB,MAAM,kBAAmBrB,EAAKuoC,YAAY7kC,EAAEpC,OAAO7C,UAG5DiB,OAAOC,EAAET,KAAKU,MAAMsoC,QAAQe,WAAW,CACnCC,UAAW,EACXC,WAAW,EACXC,gBAAgB,EAChBxoC,SAAUC,SAASC,gBAAgBC,KACnCsoC,UAAU,EACV7zB,OAAQwzB,IACT7nC,GAAG,YAAa,SAACuC,GAChB1D,EAAKqB,MAAM,gBAAiBrB,EAAK2oC,UAAUjlC,EAAEpC,OAAO7C,kFCxEjDP,cAAIC,UAAU,eAAgB,CACzCC,SAAQ,2eAWRC,MAAM,CACFO,GAAI,CACAN,KAAMC,OACNC,QAAS,MAEbC,MAAO,CACHH,KAAM,CAACC,OAAQM,QACfL,QAAS,MAEbM,SAAU,CACNR,KAAMS,OACNP,QAAS,MAEb8qC,MAAO,CACHhrC,KAAMO,OACNL,QAAS,OAGjBQ,SAAS,CACLC,QADK,WAED,OAAmB,OAAZC,KAAKN,GAAL,UAAAO,OAA6BD,KAAKN,IAAlC,UAAAO,OAAmDD,KAAKE,OAEnEmqC,YAJK,WAKD,OAAsB,OAAfrqC,KAAKoqC,MAAiB,cAAgB,KAGrDjqC,QAAQ,CACJC,WADI,SACOC,GACP,OAAOA,EAAKX,KAAOM,KAAKT,QAGhCsB,QA3CyC,WA2ChC,IAAAC,EAAAd,KACLQ,OAAOC,EAAET,KAAKU,MAAMC,QACfI,QAAQ,CAACe,YAAc9B,KAAKJ,SAASkC,YAAaE,MAAO,cACzDC,GAAG,kCAAmC,SAAAC,GACnCpB,EAAKqB,MAAM,eAAgB1B,EAAEyB,EAAME,QAAQ7B,OAAS,SAGhE8B,QAlDyC,WAmDrC7B,OAAOC,EAAET,KAAKU,MAAMC,QAAQJ,IAAIP,KAAKT,OAAOqB,QAAQ","file":"common.js","sourcesContent":["import Vue from 'vue';\n\nexport default Vue.component('inputfield', {\n template:`\n \n `,\n props:{\n type: { \n type: String, \n default: 'text' \n },\n value: { \n default: '' \n },\n disabled: { \n type: Boolean, \n default: false \n }\n }\n});","import Vue from 'vue';\n\nexport default Vue.component('suggestlist', {\n template:`\n
\n \n \n
\n `,\n props:{\n id: { \n type: String, \n default: null \n },\n value: { \n type: [String, Number], \n default: null \n },\n settings: {\n type: Object,\n default: null\n }\n },\n computed:{\n inputId() {\n return this.id !== null ? `select-${this.id}` : `select-${this._uid}`;\n }\n },\n methods:{\n isSelected(item){\n return item.id === this.value;\n }\n },\n watch: {\n value(val) {\n window.$(this.$refs.select).val(val).trigger('change.select2');\n },\n },\n mounted(){\n window.$(this.$refs.select)\n .select2({\n ajax: {\n url: this.settings.actionUrl,\n dataType: 'JSON',\n delay: 250,\n data: function (params) {\n return {\n searchTerm: params.term\n };\n }\n },\n minimumInputLength: 3,\n language: document.documentElement.lang,\n placeholder: this.settings.placeholder,\n allowClear: true,\n theme: 'bootstrap'\n })\n .on('select2:select select2:unselect', event => {\n this.$emit('update:value', $(event.target).val() || null);\n });\n },\n updated() {\n window.$(this.$refs.select).val(this.value).trigger('change.select2');\n },\n});","import Vue from 'vue';\nimport VueMq from 'vue-mq';\nimport { mapTileUrl, mapTileSettings } from './../../constants/map-constants';\nimport L from 'leaflet';\nimport 'leaflet.markercluster';\nimport 'leaflet-fullscreen';\nimport debounce from 'debounce';\n\nVue.use(VueMq, {\n breakpoints: {\n sm: 450,\n md: 1250,\n lg: Infinity,\n }\n});\n\nexport default Vue.component('leaflet-map', {\n template: `\n
\n `,\n props: {\n mapCenter: Object\n },\n data: function () {\n return {\n currentMarkers: [],\n defaultCenter: [52.1326, 5.2913],\n zoomLevel: 8,\n zoomLevelSet: false,\n };\n },\n methods: {\n renderMap(location) {\n\n // initialize Leaflet map\n this.map = L.map('leafletmap', {\n center: L.latLng(location),\n zoomControl: false, // add through api with options\n zoom: this.zoomLevel,\n scrollWheelZoom: !this.$isEmbedded\n });\n\n // add zoom control with position prop\n L.control.zoom({\n position: 'bottomright'\n }).addTo(this.map);\n\n if (this.$isEmbedded) {\n // add fullscreen controll with position prop\n L.control.fullscreen({\n position: 'bottomright'\n }).addTo(this.map);\n }\n\n // add mapbox tile layer \n L.tileLayer(mapTileUrl, mapTileSettings).addTo(this.map);\n\n // bind move end event\n this.map.addEventListener('moveend', debounce(() => {\n this.$root.$emit('clearAddress');\n this.onMapChanged();\n }, 300));\n\n // bind zoom event\n this.map.addEventListener('zoomend', () => {\n this.$root.$emit('clearAddress');\n this.zoomLevel = this.map.getZoom();\n });\n\n // Pan map to center of popup\n this.map.on('popupopen', function(e) {\n var px = this.project(e.target._popup._latlng); // find the pixel location on the map where the popup anchor is\n px.y -= e.target._popup._container.clientHeight/2; // find the height of the popup container, divide by 2, subtract from the Y axis of marker location\n this.panTo(this.unproject(px),{animate: true}); // pan to new center\n });\n\n // layer\n this.layerGroup = L.layerGroup().addTo(this.map);\n },\n onMapChanged() {\n this.$emit('mapchanged', this.map.getBounds());\n },\n getMapCenter() {\n return this.map.getCenter();\n },\n showInfoWindow(servicePoint) {\n const servicePointAddressNumber = [servicePoint.address.number, servicePoint.address.suffix];\n const infoWindowBanner = document.getElementById('info-window-banner');\n\n return L.popup({\n offset: [0, -35],\n minWidth: 320\n })\n .setLatLng([servicePoint.lat, servicePoint.lon] )\n .setContent(function () {\n var banner = document.getElementById('popupBanner').innerHTML;\n return `
\n
\n
${servicePoint.name}
\n

${servicePoint.address.street} ${servicePointAddressNumber.filter(Boolean).join(\" \")}, ${servicePoint.address.postalCode} ${servicePoint.address.city}

\n ${ servicePoint.municipalityServicePoint ? `

${window.translates.municipalityDisclaimer} ${servicePoint.municipalities.join(', ') }

` : '' }\n ${ servicePoint.additionalInfo ? `

${servicePoint.additionalInfo}

` : '' }\n

${window.translates.returnHere}

\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n ${banner}\n
\n
\n ${window.translates.routeLocation}\n
\n
\n \n
\n
`;\n })\n .openOn(this.map);\n },\n centerMap(location, zoomLevel) {\n // Set location\n if (!location || typeof location === 'undefined') {\n location = this.defaultCenter;\n }\n\n // Set zoom level\n if (zoomLevel || this.zoomLevelSet) {\n this.zoomLevel = zoomLevel;\n } else if (this.$mq === 'sm') {\n this.zoomLevel = 12;\n } else {\n this.zoomLevel = 16;\n }\n\n if (this.map === undefined) {\n this.renderMap(location);\n } else {\n this.map.setView(location, this.zoomLevel);\n }\n },\n setView(location, zoomLevel) {\n this.map.setView(location, zoomLevel);\n },\n setZoom(zoomLevel) {\n this.map.setZoom(zoomLevel);\n },\n clearMarkers() {\n // remove all the markers in one go\n this.layerGroup.clearLayers();\n this.resetCluster();\n this.currentMarkers = [];\n },\n addMarker(marker) {\n this.currentMarkers.push(marker);\n },\n resetCluster() {\n // marker cluster\n this.clusterGroup = L.markerClusterGroup({\n showCoverageOnHover: false,\n zoomToBoundsOnClick: true,\n iconCreateFunction: (cluster) => {\n\n return L.divIcon({\n html: cluster.getChildCount(),\n className: 'map-icon map-icon--cluster',\n iconSize: L.point(40, 40),\n iconAnchor: [20, 40]\n });\n }\n });\n },\n showMarkers(markers) {\n this.clearMarkers();\n\n if (markers !== null && markers.length > 0) {\n //markers.forEach(o => this.addMarker(o));\n markers.forEach(marker => {\n this.clusterGroup.addLayer(marker);\n });\n\n //this.map.addLayer(this.clusterGroup);\n this.clusterGroup.addTo(this.layerGroup);\n }\n },\n },\n created() {\n if (this.$urlParameters && this.$urlParameters.has('zoomLevel')) {\n this.zoomLevel = parseInt(this.$urlParameters.get('zoomLevel'));\n this.zoomLevelSet = true;\n }\n },\n mounted() {\n // default center on the Netherlands\n this.renderMap(this.defaultCenter);\n this.resetCluster();\n }\n});","import Vue from 'vue';\n\nexport default Vue.component('advanced-search', {\n inject: [\n 'performSearch',\n 'applyAdvancedSearch',\n 'resetAdvancedSearch'\n ],\n props:{\n advancedSearch: Object,\n queryParameters: Object,\n resources: Object\n }\n});","import Vue from 'vue';\n\nexport default Vue.component('grid', {\n props:{\n columns: Array,\n rows: Array,\n loadingRows: Boolean,\n resources: Object,\n queryParameters: Object,\n axe: Function\n }\n});","import axios from 'axios';\nimport qs from 'qs';\nimport Vue from 'vue';\nimport Pagination from './pagination';\nimport QuickSearch from './quick-search';\nimport isEqual from 'lodash/isEqual';\n\nexport default Vue.component('overview', {\n template:`\n
\n
\n
\n
\n \n
\n
\n \n \n
\n
\n
\n
\n \n
\n
\n \n \n
\n
\n
\n
\n `,\n components: {\n 'pagination': Pagination,\n 'quicksearch': QuickSearch\n },\n props:{\n id: String,\n baseUrl: String,\n columns: Array,\n defaultSearchParameters: Object,\n searchParameters: Object,\n resources: Object,\n advancedSearch: Object,\n feedbackMessage: String,\n paginationSettings: Object\n },\n data: function(){\n return {\n axe: axios.create({\n baseURL: this.baseUrl,\n paramsSerializer: function(params) {\n return qs.stringify(params, { indices: false, allowDots: true, skipNulls: true })\n }\n }),\n cancelToken: axios.CancelToken,\n cancelTokenSource: null,\n pagination: {\n totalRecordCount: 0,\n totalPageCount: 0\n },\n rows:[],\n queryParameters: Object.assign({ }, this.searchParameters),\n lastQueryParameters: null,\n loadingRows: true,\n loadingPaginationData: true,\n actions: this.buildActions()\n };\n },\n methods:{\n performSearch(){\n if(this.cancelTokenSource !== null){\n this.cancelTokenSource.cancel('Operation canceled by user multiple performSearch requests.');\n }\n this.cancelTokenSource = this.cancelToken.source();\n\n var queryParameters = this.getQueryParameters();\n var lastQueryParameters = this.getLastQueryParameters();\n var getGridData = this.shouldGetGridData(queryParameters, lastQueryParameters);\n var getPaginationData = this.shouldGetPaginationData(queryParameters, lastQueryParameters);\n \n if(getGridData) {\n this.getGridData(queryParameters);\n }\n\n if(getPaginationData){\n this.getPaginationData(queryParameters);\n }\n },\n applyAdvancedSearch(){\n this.queryParameters.activeAdvancedSearch = true;\n this.queryParameters.pageNumber = 1;\n this.performSearch();\n },\n resetAdvancedSearch(){\n Object.assign(this.queryParameters, this.defaultSearchParameters);\n //this.queryParameters.activeAdvancedSearch = false;\n this.performSearch();\n },\n performQuickSearch(){\n this.queryParameters.pageNumber = 1;\n this.performSearch();\n },\n toggleAdvancedSearch(){\n this.advancedSearch.visible = !this.advancedSearch.visible;\n },\n /**\n * Retrieves the query parameters. If advanced search is inactive, only quick search values \n * are filled. Sort and pagination values are allways returned. Otherwise cloned queryParameters\n * is returned with all binded values.\n * @returns OverviewParameters\n */\n getQueryParameters(){\n return this.queryParameters.activeAdvancedSearch ? Object.assign({ }, this.queryParameters) : { \n keyword : this.queryParameters.keyword,\n sortDirection: this.queryParameters.sortDirection,\n sortField: this.queryParameters.sortField,\n pageNumber: this.queryParameters.pageNumber,\n pageSize: this.queryParameters.pageSize\n };\n },\n getLastQueryParameters(){\n return Object.assign({ }, this.lastQueryParameters);\n },\n\n /**\n * Checks if grid data should be retrieved by comparing the query parameters. \n * @param {*} queryParameters\n * @param {*} lastQueryParameters\n * @returns true if new GridData should be retrieved, otherwise false.\n */\n shouldGetGridData(queryParameters, lastQueryParameters){\n return !isEqual(queryParameters, lastQueryParameters);\n },\n /**\n * Retrieves the grid data based on the specified query parameters.\n *\n * @param {*} queryParameters\n */\n getGridData(queryParameters){\n var requestParameters = Object.assign({ }, queryParameters);\n \n this.loadingRows = true;\n this.axe.get('/overviewgriddata', { \n params: { parameters: requestParameters },\n cancelToken: this.cancelTokenSource.token\n }).then((response) => { \n this.lastQueryParameters = queryParameters;\n this.cancelTokenSource = null;\n this.rows.splice(0);\n \n if(response.data.rows !== null && response.data.rows.length > 0){\n this.rows.splice(0, 0, ...response.data.rows);\n }\n }).catch((thrown) => {\n //todo : display notification message with message from resources\n if (axios.isCancel(thrown)) {\n console.log('Request canceled', thrown.message);\n } else {\n console.log('app error', thrown.message);\n }\n }).then(() => {\n this.loadingRows = false;\n One.helpers(['core-bootstrap-popover', 'core-bootstrap-tooltip'])\n });\n },\n /**\n * Checks if pagination data should be retrieved by comparing the query parameters\n * without pagination and sorting parameters.\n * @param {*} queryParameters\n * @param {*} lastQueryParameters\n * @returns\n */\n shouldGetPaginationData(queryParameters, lastQueryParameters){\n var parameters = Object.assign({ }, queryParameters);\n var lastParameters = Object.assign({ }, lastQueryParameters);\n\n this.clearParametersForPaginationData(parameters);\n this.clearParametersForPaginationData(lastParameters);\n\n return !isEqual(parameters, lastParameters);\n },\n /**\n * Deletes pageNumber, sortDirection and sortField properties from query parameters \n * in order to perform getPaginationData changes comparison.\n * @param {*} parameters\n */\n clearParametersForPaginationData(parameters){\n delete parameters.pageNumber;\n delete parameters.sortDirection;\n delete parameters.sortField;\n },\n /**\n * Retrieves pagination data with the specified query parameters.\n *\n * @param {*} queryParameters\n */\n getPaginationData(queryParameters){\n this.loadingPaginationData = true;\n this.axe.get('/overviewpaginationdata', { \n params: { parameters: queryParameters },\n cancelToken: this.cancelTokenSource.token\n }).then((response) => { \n this.pagination.totalPageCount = response.data.totalPageCount;\n this.pagination.totalRecordCount = response.data.totalRecordCount;\n }).catch((thrown) => {\n //todo : display notification message with message from resources\n if (axios.isCancel(thrown)) {\n console.log('Request canceled', thrown.message);\n } else {\n console.log('app error', thrown.message);\n }\n }).then(() => {\n this.loadingPaginationData = false;\n });\n },\n /** Displays feedback nofification message */\n displayFeedback(){\n if(this.feedbackMessage !== null && this.feedbackMessage !== '') {\n window.$.notify({ type: 'success', icon: 'fa fa-check mr-1', message: this.feedbackMessage });\n }\n }\n },\n provide: function () {\n return {\n performSearch: this.performSearch,\n performQuickSearch: this.performQuickSearch,\n applyAdvancedSearch: this.applyAdvancedSearch,\n resetAdvancedSearch: this.resetAdvancedSearch,\n toggleAdvancedSearch: this.toggleAdvancedSearch\n }\n },\n created() {\n this.performSearch();\n this.displayFeedback();\n }\n});","import Vue from 'vue';\nimport Paginate from 'vuejs-paginate'\n\nexport default Vue.component('pagination', {\n template:`\n
\n
\n
\n {{resources.pagination.showingText}}\n \n -\n \n {{resources.pagination.ofText}}\n \n {{resources.pagination.resultsText}}\n
\n
\n
\n
\n \n \n
\n
\n
\n `,\n components:{\n 'paginate': Paginate\n },\n inject: [\n 'performSearch'\n ],\n props:{\n pagination: Object,\n queryParameters: Object,\n resources: Object,\n loadingPaginationData: Boolean,\n rows: Array\n },\n computed: {\n previousPageText(){ \n return '' \n },\n nextPageText(){\n return '';\n },\n resultsFrom(){\n return this.pagination.totalRecordCount > 0 ? ((this.queryParameters.pageNumber - 1) * this.queryParameters.pageSize) + 1 : 0\n },\n resultsTo(){\n return Math.min(this.queryParameters.pageNumber * this.queryParameters.pageSize, this.pagination.totalRecordCount);\n }\n }\n});","import Vue from 'vue';\nimport SelectList from '../elements/selectlist';\n\nexport default Vue.component('quick-search', {\n template:`\n \n
\n
\n \n
\n \n
\n
\n
\n \n
\n `,\n inject: [\n 'performQuickSearch'\n ],\n props:{\n queryParameters: Object,\n resources: Object,\n loadingRows: Boolean,\n paginationSettings: Object,\n placeholder: { type: String, default: 'Search' }\n },\n computed:{\n formId(){\n return `quicksearch-${this._uid}`;\n }\n },\n methods:{\n quicksearch(event){\n event.preventDefault();\n this.performQuickSearch();\n },\n pageSizeUpdated(pageSize){\n this.queryParameters.pageSize = pageSize;\n this.performQuickSearch();\n }\n },\n components:{\n 'selectlist': SelectList\n },\n mounted(){\n this.$refs.keyword.focus();\n }\n});","import Vue from 'vue';\nimport SortDirection from './sortdirection';\n\nexport default Vue.component('sorting', {\n template:`\n \n \n {{column.title}}\n \n \n `,\n inject: [\n 'performSearch'\n ],\n props:{\n columns: Array,\n queryParameters: Object\n },\n methods:{\n headerClass(column){\n if(column.sortable){\n var sortField = this.queryParameters.sortField;\n var sortDirection = this.queryParameters.sortDirection;\n\n if(column.sortField === sortField){\n if(sortDirection === SortDirection.Asc){\n return 'sorting asc';\n } else if (sortDirection === SortDirection.Desc){\n return 'sorting desc';\n }\n } else {\n return 'sorting';\n }\n } else {\n return ''\n }\n },\n setSortParameters(column){\n if(column.sortable){\n var sortField = this.queryParameters.sortField;\n var sortDirection = this.queryParameters.sortDirection;\n\n if(sortField !== column.sortField){\n this.queryParameters.sortField = column.sortField;\n this.queryParameters.sortDirection = SortDirection.Desc;\n } else if(sortDirection === SortDirection.Asc) {\n this.queryParameters.sortDirection = SortDirection.Desc;\n } else {\n this.queryParameters.sortDirection = SortDirection.Asc;\n }\n }\n },\n sortGridData(column){\n this.setSortParameters(column);\n this.performSearch();\n }\n }\n});","import Vue from 'vue';\nimport BaseFilter from './readableidsfilter';\nimport axios from 'axios';\nimport qs from 'qs';\nimport debounce from 'debounce';\n\nexport default Vue.component('servicepointsfilter', {\n extends: BaseFilter,\n data(){\n return {\n backofficeService: axios.create({\n baseURL: '/mywecycle/backoffice',\n paramsSerializer: function(params) {\n return qs.stringify(params, { indices: false, allowDots: true, skipNulls: true })\n }\n })\n }\n },\n methods:{\n getFilterData: debounce(function (event) {\n var code = event.target.value !== null ? `${this.prefix}${event.target.value}` : '';\n\n this.backofficeService.get('getservicepoint', {\n params: { servicePointCode: code }\n }).then((response) => { \n /** todo : normalize the service on webapi controller */\n this.$emit('input', response.data.ServicePointId);\n this.$emit('update:text', event.target.value);\n this.$emit('update:description', response.data.ServicePointName);\n }).catch((thrown) => {\n console.log('app error', thrown.message);\n });\n }, 300)\n }\n});","import Vue from 'vue';\nexport default Vue.component('tabmanager', {\n template:`\n
\n \n
\n \n \n \n \n \n
\n
\n
\n
\n \n
\n
\n \n \n
\n
\n
\n
\n `,\n computed:{\n currentTabComponent: function(){\n return this.currentTab !== undefined ? this.currentTab.componentType : null;\n }\n },\n props:{\n canMoveTab: Function,\n getTabContentUri: Function\n },\n methods:{\n getTab(index){\n return this.tabs[index];\n }, \n getActiveTab(){\n return this.tabs.find(o => o.isActive);\n },\n getNextTab(){\n return this.getTab(this.currentTab.index + 1);\n },\n showTab(targetTab){\n if(targetTab.isEnabled){\n this.currentTab.isActive = false;\n this.currentTab = targetTab;\n this.currentTab.isActive = true;\n }\n },\n moveToTab(event, index){\n event.preventDefault();\n this.showTab(this.getTab(index));\n },\n isSaveButtonVisible(){\n return this.currentTab !== undefined && this.currentTab.hasSaveOption;\n },\n isPreviousButtonVisible(){\n return this.currentTab !== undefined && this.currentTab.index > 0;\n },\n moveToPreviousTab(){\n this.showTab(this.getTab(this.currentTab.index - 1));\n },\n moveToNextTab(){\n this.showTab(this.getTab(this.currentTab.index + 1));\n },\n isNextButtonVisible(){\n if(this.currentTab !== undefined && (this.currentTab.index + 1) < this.tabs.length){\n return this.getTab(this.currentTab.index + 1).isEnabled;\n } \n return false;\n },\n onTabSaveSuccess(showSuccessNotification){\n let nextTab = this.getNextTab();\n \n if(nextTab !== undefined && this.pageMode === 0){\n nextTab.isEnabled = true;\n this.showTab(nextTab);\n }\n\n if(showSuccessNotification){\n One.helpers('notify', { type: 'success', icon: 'fa fa-check mr-1', message: this.resources.saveWithSuccessMessage });\n } \n },\n onTabSaveError(){\n One.helpers('notify', { type: 'danger', icon: 'fa fa-exclamation-triangle mr-1', message: this.resources.saveWithoutSuccessMessage });\n }\n },\n mounted(){\n\n },\n created() {\n\n }\n});","import Vue from 'vue';\nimport BaseAdvancedSearch from '../../general/overview-grid/advanced-search';\nimport DateRange from '../../general/elements/daterange';\nimport DropDownList from '../../general/elements/dropdownlist';\nimport SuggestList from '../../general/elements/suggestlist';\n\nexport default Vue.component('advanced-search', {\n extends: BaseAdvancedSearch,\n template:` \n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n \n \n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n `,\n components:{\n 'daterange': DateRange,\n 'dropdownlist': DropDownList,\n 'suggestlist': SuggestList\n }\n});","import Vue from 'vue';\nimport ExecutionStatus from '../../../enums/system/executionstatus';\n\nexport default Vue.component('cancelorder-modal', {\n template:`\n
\n
\n
\n
\n

{{ resources.title }}

\n
\n
\n

{{ message }}

\n
\n
\n \n \n
\n
\n
\n
\n `,\n props:{\n name: String,\n message: String,\n orderId: String,\n orderCode: String,\n cancelAllowed: Boolean,\n cutoffTimeReached: Boolean,\n resources: Object,\n axe: Function\n },\n methods:{\n cancelOrder(){\n var requestParameters = {\n orderId: this.orderId,\n orderCode: this.orderCode,\n cutoffTimeReached: this.cutoffTimeReached\n };\n\n this.axe.get('/cancelorder', { \n params: { parameters: requestParameters }\n }).then((response) => { \n if(response.data.status === ExecutionStatus.Success){\n window.location.href = response.data.redirectUrl;\n } else {\n this.$emit('close');\n One.helpers('notify', { type: 'danger', icon: 'fa fa-exclamation-triangle mr-1', message: response.data.Message });\n }\n }).catch((thrown) => {\n console.log('app error', thrown.message);\n });\n }\n }\n});","import Vue from 'vue';\n\nexport default Vue.component('exportfailure-modal', {\n template:`\n
\n
\n
\n
\n

{{ resources.title }}

\n
\n
\n

{{ resources.message }}

\n
\n
\n \n \n
\n
\n
\n
\n `,\n props:{\n name: String,\n canExport: Boolean,\n exportUrl: { type: String, default: null },\n resources: Object\n }\n});","import moment from 'moment';\nimport Vue from 'vue';\nimport Sorting from '../../general/overview-grid/sorting';\nimport BaseGrid from '../../general/overview-grid/grid';\nimport RouteAssignmentModal from './routeassignment-modal';\nimport CancelOrderModal from './cancelorder-modal';\n\nexport default Vue.component('grid', {\n extends: BaseGrid,\n template:`\n \n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n \n \n \n \n \n \n\n \n \n \n \n \n
\n {{ row.code }}\n \n {{ row.code }}\n \n {{ row.code }}\n {{ row.code }}\n -\n \n {{ row.originalOrderCode }}\n {{row.originalOrderCode}}{{ formatDateTime(row.creationDate) }}{{ formatDate(row.processDate) }}{{ formatDateTime(row.plannedDate, resources.grid.notDefined) }}{{ formatDateTime(row.pickedUpDate, resources.grid.notPickedUp) }}{{row.stateLabel}}\n {{row.requesterName}}\n {{row.requesterName}}\n {{row.transporterName}}\n {{row.transporterName}}\n {{row.receiverName}}\n {{row.receiverName}}\n
\n \n \n \n \n \n \n \n \n \n
\n
\n `,\n components:{\n 'sorting': Sorting\n },\n methods:{\n stateLabelClass(row){\n if(row.isBilled)\n return 'badge badge-pill badge-success';\n if(row.isCancelled)\n return 'badge badge-pill badge-danger';\n return 'badge badge-pill badge-light';\n },\n formatDate(value){\n return value != null && value != undefined ? moment(value, moment.ISO_8601).format('L') : '';\n },\n formatDateTime(value, defaultValue){\n return value != null && value != undefined ? moment(value, moment.ISO_8601).format('DD-MM-YYYY H:mm') : defaultValue;\n },\n routeAssignment(row){\n this.axe.get('/routeassignmentmodal', { \n params: { id: row.orderId }\n }).then((response) => { \n this.showRouteAssignmentModal(row.orderId, response.data);\n }).catch((thrown) => {\n //todo : display notification message with message from resources\n console.log('app error', thrown.message);\n }).then(() => {\n \n });\n },\n showRouteAssignmentModal(orderId, modalData){\n this.$modal.show(RouteAssignmentModal, { \n orderId: orderId,\n name: 'routeassignment',\n requester: modalData.requester,\n transporter: modalData.transporter,\n receiver: modalData.receiver,\n resources: modalData.resources,\n axe: this.axe\n }, {\n adaptive: true,\n height: 'auto',\n maxWidth: 450\n });\n },\n cancelOrder(row){\n this.axe.get('/cancelordermodal', { \n params: { id: row.orderId }\n }).then((response) => { \n this.showCancelOrderModal(response.data);\n }).catch((thrown) => {\n //todo : display notification message with message from resources\n console.log('app error', thrown.message);\n }).then(() => {\n \n });\n },\n showCancelOrderModal(modalData){\n this.$modal.show(CancelOrderModal, { \n name: 'cancelorder',\n message: modalData.message,\n orderId: modalData.orderId,\n orderCode: modalData.orderCode,\n cancelAllowed: modalData.cancelAllowed,\n cutoffTimeReached: modalData.cutoffTimeReached, \n resources: modalData.resources,\n axe: this.axe\n }, {\n adaptive: true,\n height: 'auto',\n maxWidth: 300\n });\n }\n }\n});","import axios from 'axios';\nimport qs from 'qs';\nimport Vue from 'vue';\nimport ServicePointsFilter from '../../general/readableids/servicepointsfilter';\nimport ExecutionStatus from '../../../enums/system/executionstatus';\n\nexport default Vue.component('routeassignment-modal', {\n template:`\n
\n
\n
\n
\n

{{ resources.title }}

\n
\n
\n \n \n \n
0\" class=\"form-group\">\n
\n
{{resources.validationTitle}}
\n
    \n
  • \n {{ message }}\n
  • \n
\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n `,\n components:{\n 'servicepointsfilter': ServicePointsFilter\n },\n data(){\n return {\n routeAssignmentStatus: ExecutionStatus.Unknown,\n routeAssignmentMessages: []\n }\n },\n props:{\n orderId: String,\n name: String,\n requester: Object,\n transporter: Object,\n receiver: Object,\n resources: Object,\n axe: Function\n },\n computed:{\n validationClass(){\n return this.routeAssignmentStatus === ExecutionStatus.Success ? 'alert alert-success' : 'alert alert-danger';\n }\n },\n methods:{\n assignRoute(event){\n // todo : validate form\n var requestParameters = {\n orderId: this.orderId,\n transporterId: this.transporter.value,\n receiverId: this.receiver.value\n };\n\n this.axe.get('/changerouteassignment', { \n params: { parameters: requestParameters }\n }).then((response) => { \n if(response.data.status === ExecutionStatus.Success){\n window.location.href = response.data.redirectUrl;\n } else {\n this.routeAssignmentStatus = response.data.status;\n this.routeAssignmentMessages = response.data.messages;\n }\n }).catch((thrown) => {\n console.log('app error', thrown.message);\n });\n }\n }\n});","import Vue from 'vue';\nimport Tab from '../general/tab';\nimport axios from 'axios';\nimport * as FormHelpers from '../../helpers/formhelpers';\n\nexport default Vue.component('backofficetab', {\n extends: Tab,\n data: function(){\n return {\n axe: axios.create({\n baseURL: '/mywecycle/servicepoint'\n }),\n form: null\n }\n },\n methods:{\n loadContent(){\n this.servicePointId = this.$parent.servicePointId;\n this.axe.get('/servicepointbackofficetab', { params: { servicePointId: this.servicePointId }})\n .then((response) => { return this.renderTabContent(response.data); })\n .then((tabElem) => { this.initializeContent(tabElem) })\n .catch((error) => { console.log('Error retrieving tab content : ' + error); });\n },\n initializeContent(tabElem){\n const _self = this;\n this.initializeForm(tabElem);\n One.helpers(['core-bootstrap-custom-file-input', 'select2']);\n \n tabElem.find('input[name=\"operations--servicepoint__municipalityservicepoint\"]').on('change', function () {\n _self.$root.$emit(\"destroyDetailTab\"); // Emit event to destroy detail tab and force re-render\n });\n\n MyStichtingOpen.ServicePoints.initSsdsUpload();\n MyStichtingOpen.ServicePoints.municipalityServicePoint();\n },\n initializeForm(tabElem){\n this.form = tabElem.find('.js-backoffice-servicepoint');\n },\n saveTab(){\n let formData = FormHelpers.getFormData(this.form);\n this.axe.post('/servicepointbackoffice', formData)\n .then((response) => { \n let ssdsUpload = response.data.SSDSUploadHtml;\n if (ssdsUpload != null) {\n var $ssdsUploadContainer = $('div[data-ssds-upload]');\n $ssdsUploadContainer.html(ssdsUpload);\n MyStichtingOpen.ServicePoints.initSsdsUpload();\n One.helpers('core-bootstrap-tooltip');\n }\n\n return true; \n })\n .then((submitedWithSuccess) => {\n if(submitedWithSuccess){ this.$emit('submit', true); }\n })\n .catch((error) => {\n console.log('Error saving detail tab : ' + error);\n this.$emit('submiterror');\n }); \n }\n },\n mounted(){\n\n },\n created() {\n this.loadContent();\n }\n});","import Vue from 'vue';\nimport Tab from '../general/tab';\nimport axios from 'axios';\nimport * as Utils from '../../utils';\nimport * as FormHelpers from '../../helpers/formhelpers';\nimport 'jquery-validation';\n\nexport default Vue.component('detailtab', {\n extends: Tab,\n data: function(){\n return {\n servicePointId: null,\n axe: axios.create({\n baseURL: '/mywecycle/servicepoint'\n }),\n form: null,\n validator: null\n }\n },\n methods:{\n /**\n *Initializes the detail tab form\n *\n * @param {*} tabElem\n */\n initializeForm(tabElem){\n this.form = tabElem.find('.js-servicepoint-details');\n this.validator = this.form.validate({\n errorClass: 'invalid-feedback animated fadeIn',\n errorElement: 'div',\n errorPlacement: (error, el) => {\n $(el).addClass('is-invalid');\n $(el).parents('.form-group').append(error);\n },\n highlight: el => {\n $(el).parents('.form-group').find('.is-invalid').removeClass('is-invalid').addClass('is-invalid');\n },\n success: el => {\n $(el).parents('.form-group').find('.is-invalid').removeClass('is-invalid');\n $(el).remove();\n },\n groups: {\n collectionusertypes: 'operations--servicepoint__collectsfromconsumers operations--servicepoint__collectsfrombusiness'\n },\n rules: {\n 'operations--servicepoint__name': {\n required: true\n },\n 'operations--servicepoint__startdate': {\n required: true\n },\n 'operations--servicepoint__contacts': {\n required: true\n },\n 'operations--servicepoint__pickupaddress': {\n required: true\n },\n 'operations--servicepoint__visitingaddress': {\n required: true\n },\n 'operations--servicepoint__collectsfromconsumers': {\n require_from_group: {\n param: [1, '.operations--servicepoint__collectionusertypes'],\n depends: function (element) {\n if ($('input[name=\"operations--servicepoint__usersearchenginedetails\"]:checked').length > 0) {\n return true;\n } else {\n return false;\n }\n }\n }\n },\n 'operations--servicepoint__collectsfrombusiness': {\n require_from_group: {\n param: [1, '.operations--servicepoint__collectionusertypes'],\n depends: function (element) {\n if ($('input[name=\"operations--servicepoint__usersearchenginedetails\"]:checked').length > 0) {\n return true;\n } else {\n return false;\n }\n }\n }\n },\n 'operations--servicepoint__serviceaccepttypes': {\n required: {\n depends: function (element) {\n if ($('input[name=\"operations--servicepoint__usersearchenginedetails\"]:checked').length > 0) {\n return true;\n } else {\n return false;\n }\n }\n }\n }\n },\n messages: {\n 'operations--servicepoint__collectsfromconsumers': {\n // look for other data attribute, because razor doesn't like \"_\" in data attributes\n require_from_group: function (params, element) {\n return $(element).data('msg-require-from-group');\n }\n },\n 'operations--servicepoint__collectsfrombusiness': {\n // look for other data attribute, because razor doesn't like \"_\" in data attributes\n require_from_group: function (params, element) {\n return $(element).data('msg-require-from-group');\n }\n }\n }\n });\n },\n /** Saves the detail form */\n saveTab(){\n if (this.validator.form()){\n let addressId = parseInt($('#operations--servicepoint__pickupaddress').val());\n let servicePointRoleId = $('[data-role-id]', this.form).data('role-id') || $('[data-role-id]', this.form).val();\n \n // Remove disabled properties to include fields in formData\n const disabledFields = $(':input:disabled', this.form).add('option:disabled').removeAttr('disabled');\n\n // Get formData\n let formData = FormHelpers.getFormData(this.form);\n\n // Re-disable previously enabled fields\n disabledFields.attr('disabled', 'disabled');\n\n this.axe.get('/checkifservicepointisduplicated', { params:{ \n addressId: addressId,\n spRoleId: servicePointRoleId,\n servicePointId: this.servicePointId\n }})\n .then((response) => {\n if(response.data && response.data.Duplicated && this.servicePointId === null){\n One.helpers('notify', { type: 'danger', icon: 'fa fa-exclamation-triangle mr-1', message: response.data.Message });\n } else {\n this.axe.post('/servicepointdetail', formData)\n .then((response) => {\n if(response.data.ServicePointId){\n this.$parent.onServicePointCreate(response.data.ServicePointId);\n return true;\n }\n return false;\n })\n .then((submitedWithSuccess) => {\n if(submitedWithSuccess){ this.$emit('submit', true); }\n })\n .catch((error) => {\n console.log('Error saving detail tab : ' + error);\n this.$emit('submiterror');\n }); \n }\n })\n .catch((error) => {\n console.log('Error saving detail tab : ' + error);\n this.$emit('submiterror');\n });\n } else {\n this.validator.focusInvalid();\n }\n },\n /** Initializes the tab content elements */\n initializeContent(tabElem){\n this.initializeForm(tabElem);\n One.helpers(['core-bootstrap-popover', 'core-bootstrap-tooltip', 'core-toggle-class', 'select2', 'datepicker', 'masked-inputs', 'maxlength', 'table-tools-sections']);\n\n // Capitalize first letter of name on keyup\n tabElem.find('#operations--servicepoint__name').keyup(function () {\n Utils.capitalizeTextBox($(this));\n });\n\n const businessCheckbox = document.getElementById('operations--servicepoint__collectsfrombusiness')\n if (businessCheckbox) {\n businessCheckbox.addEventListener('change', (event) => {\n const informationField = document.getElementById('additionalInfo')\n if (!informationField) {\n return;\n }\n if (event.target.checked) {\n informationField.classList.remove('d-none')\n } else {\n informationField.classList.add('d-none')\n }\n })\n }\n \n MyStichtingOpen.Contacts.initContactPersonModal();\n MyStichtingOpen.Addresses.initAddressModal();\n MyStichtingOpen.ServicePoints.searchEngine();\n },\n /** Loads the detail tab content */\n loadContent(){\n this.servicePointId = this.$parent.servicePointId;\n this.axe.get('/servicepointdetailtab?', { params: { servicePointId: this.servicePointId }})\n .then((response) => { return this.renderTabContent(response.data); })\n .then((tabElem) => { this.initializeContent(tabElem) })\n .catch((error) => { console.log('Error retrieving tab content : ' + error); });\n }\n },\n created() {\n this.loadContent();\n\n this.$root.$on(\"destroyDetailTab\", () => {\n this.$destroy();\n })\n },\n beforeDestroy() {\n const businessCheckbox = document.getElementById('operations--servicepoint__collectsfrombusiness')\n if (businessCheckbox) {\n businessCheckbox.removeEventListener('change')\n }\n }\n});","\n/**\n *Capitalizes the first letter of the text box value\n *\n * @export\n * @param {*} textBox\n */\nexport function capitalizeTextBox(textBox){\n textBox.val(capitalize(textBox.val()));\n}\n\n/**\n *Capitalizes the first letter of the specified text\n *\n * @param {*} text\n * @returns\n */\nfunction capitalize(text) {\n if (typeof text !== 'string') return '';\n return text.charAt(0).toUpperCase() + text.slice(1);\n}\n","import Vue from 'vue';\nimport Tab from '../general/tab';\nimport axios from 'axios';\nimport * as FormHelpers from '../../helpers/formhelpers';\nimport 'jquery-validation';\n\nexport default Vue.component('estimationstab', {\n extends: Tab,\n data: function(){\n return {\n axe: axios.create({\n baseURL: '/mywecycle/servicepoint'\n }),\n form: null,\n validator: null\n }\n },\n methods:{\n /**\n *Initializes estimations tab form and form validations\n *\n * @param {*} tabElem\n */\n initializeForm(tabElem){\n this.form = tabElem.find('.js-estimation-details');\n this.validator = this.form.validate({\n errorClass: 'invalid-feedback animated fadeIn',\n errorElement: 'div',\n errorPlacement: (error, el) => {\n $(el).addClass('is-invalid');\n $(el).parents('.form-group').append(error);\n },\n highlight: el => {\n $(el).parents('.form-group').find('.is-invalid').removeClass('is-invalid').addClass('is-invalid');\n },\n success: el => {\n $(el).parents('.form-group').find('.is-invalid').removeClass('is-invalid');\n $(el).remove();\n },\n rules: {\n 'companyinfo--relation__collection--bigappl': {\n required: true\n },\n 'companyinfo--relation__collection--smallappl': {\n required: true\n },\n 'companyinfo--relation__collection--fluotubes': {\n required: true\n },\n 'companyinfo--relation__collection--esaveledlamps': {\n required: true\n },\n 'companyinfo--relation__collection--luminaires': {\n required: true\n },\n 'companyinfo--relation__collection--batteries': {\n required: true\n },\n 'companyinfo--relation__collection--mediumappl': {\n required: true\n }\n }\n });\n },\n /** */\n saveTab(){\n let formData = FormHelpers.getFormData(this.form);\n this.axe.post('/servicepointestimation', formData)\n .then((response) => { \n if(response.data.DisableEstimation){\n $('#companyinfo--relation__collection--bigappl').prop('disabled', 'disabled');\n $('#companyinfo--relation__collection--smallappl').prop('disabled', 'disabled');\n $('#companyinfo--relation__collection--fluotubes').prop('disabled', 'disabled');\n $('#companyinfo--relation__collection--esaveledlamps').prop('disabled', 'disabled');\n $('#companyinfo--relation__collection--luminaires').prop('disabled', 'disabled');\n $('#companyinfo--relation__collection--batteries').prop('disabled', 'disabled');\n $('#companyinfo--relation__collection--mediumappl').prop('disabled', 'disabled');\n\n // output date of estimation\n var dateText = $('.js-estimation-date').find('.js-estimation-date-value').text();\n $('.js-estimation-date').removeClass('d-none').find('.js-estimation-date-value').text(dateText + ' ' + response.data.EstimationDate);\n $('.js-saved-estimations').addClass('d-none'); \n }\n return true;\n })\n .then((submitedWithSuccess) => {\n if(submitedWithSuccess){ this.$emit('submit', true); }\n })\n .catch((error) => {\n console.log('Error saving detail tab : ' + error);\n this.$emit('submiterror');\n });\n },\n /**\n *Initializes the tab content elements\n *\n * @param {*} tabElem\n */\n initializeContent(tabElem){\n this.initializeForm(tabElem);\n One.helpers(['core-bootstrap-popover', 'core-bootstrap-tooltip', 'select2', 'datepicker', 'masked-inputs', 'maxlength', 'table-tools-sections']);\n\n MyStichtingOpen.ServicePoints.useEstimations();\n },\n /** Loads the tab content */\n loadContent(){\n this.servicePointId = this.$parent.servicePointId;\n this.axe.get('/servicepointestimationstab?', { params: { servicePointId: this.servicePointId }})\n .then((response) => { return this.renderTabContent(response.data); })\n .then((tabElem) => { this.initializeContent(tabElem) })\n .catch((error) => { console.log('Error retrieving tab content : ' + error); });\n }\n },\n created() {\n this.loadContent();\n }\n});","import $ from 'jquery';\nimport Vue from 'vue';\nimport \"custom-event-polyfill\";\n\nexport function initializeFoundation(Foundation) {\n /** Extend jquery with foundation */\n Foundation.addToJquery($);\n\n /** Initialize foundation */\n $(document).foundation();\n}\n\nexport function initializeVue(){\n const vueComponents = document.querySelectorAll('[data-vue]'),\n event = new CustomEvent('vue_loaded');\n\n if (vueComponents.length > 0) {\n for (var i = 0; i < vueComponents.length; i++) {\n let element = vueComponents[i];\n let moduleData = JSON.parse(element.getAttribute('data-module-options')) || {};\n \n new Vue({ el: element, data: moduleData,mounted() {\n this.$nextTick(() => {\n document.dispatchEvent(event);\n });\n }, });\n }\n } else {\n document.dispatchEvent(event);\n }\n}\n\n/** Initializes vue components on the document */\nexport function initializeVueComponents(){\n const moduleElements = document.querySelectorAll('[data-module]');\n\n for (var i = 0; i < moduleElements.length; i++) {\n const el = moduleElements[i];\n let result = initializeElementModule(el);\n\n if(!result){\n break;\n }\n }\n}\n\n/**\n * Initializes the element module\n * @param {string} elementId \n */\nexport function initializeModule(elementId){\n return initializeElementModule(document.getElementById(elementId));\n}\n\n/**\n * Initializes the element module\n * @param {HTMLElement} el \n */\nfunction initializeElementModule(el){\n let result = true;\n const name = el.getAttribute('data-module');\n let options = el.getAttribute('data-module-options');\n let manual = el.getAttribute('data-module-manual');\n\n if (name === '') {\n if (DEBUG) {\n console.warn('Name ' + name + ' was not a valid module name.');\n }\n result = false;\n }\n\n if(result) {\n if (JSON.parse(options)) {\n // Options are succesfully parseable to json\n options = JSON.parse(options);\n }\n else if (typeof options !== 'undefined' && options !== null) {\n // Invalid options sent\n if (DEBUG) {\n console.warn('The options object supplied with ' + name + ' module seems to be invalid json.');\n }\n result = false;\n }\n else {\n // No options provided.\n options = {}; // fallback\n }\n \n if (!manual) {\n const Module = require(`./${name}`).default;\n new Module({ el: el, data: options });\n } else {\n console.log('Module ' + name + ' is set to manual loading. Skipping.');\n }\n }\n\n return result;\n}\n\n/** Enable HRM */\nif (module.hot) {\n module.hot.accept();\n}","import Vue from 'vue';\nimport Tab from '../general/tab';\nimport StockManager from './stock/stockmanager';\nimport axios from 'axios';\nimport qs from 'qs';\n\nexport default Vue.component('inventorytab', {\n template:`\n
\n
\n \n
\n
\n \n
\n
\n `,\n extends: Tab,\n components: {\n ResourceManager: 'resourcemanager',\n StockManager: 'stockmanager'\n },\n data: function(){\n return {\n axe: axios.create({\n baseURL: '/webapi/servicepointstock',\n paramsSerializer: function(params) {\n return qs.stringify(params, { indices: false, allowDots: true, skipNulls: true })\n }\n }),\n loading: true,\n servicePointId: '',\n collectionResourcesWastes: { \n selected: [],\n unselected: []\n },\n pieceCollectionResourcesWastes: { \n selected: [],\n unselected: [] \n },\n collectionResourcesStock: [],\n pieceCollectionResourcesStock: [],\n permissions: {\n canEdit: false\n },\n sentences:{ }\n }\n },\n methods:{\n saveTab(){\n this.axe.put('/savestock', {\n servicePointId: this.servicePointId,\n selectedResources: this.collectionResourcesWastes.selected,\n selectedPieceCollections: this.pieceCollectionResourcesWastes.selected,\n resourcesStock: this.collectionResourcesStock,\n pieceCollectionResourcesStock: this.pieceCollectionResourcesStock\n })\n .then((response) => {\n One.helpers('notify', { ...response.data.notification, message: response.data.notification.content });\n })\n .catch((error) => { console.log('Error saving inventory: ' + error); });\n\n this.$emit('submit', false);\n },\n loadContent(){\n this.servicePointId = this.$parent.servicePointId;\n this.axe.get('/getstockmanagerdata', { params: { request: { servicePointId: this.servicePointId }}})\n .then((response) => {\n let data = response.data;\n /** update arrays instead of assigning new ones, they are already binded to vue */\n this.collectionResourcesWastes.selected.splice(0, 0, ...data.collectionResourcesWastes.selected);\n this.collectionResourcesWastes.unselected.splice(0, 0, ...data.collectionResourcesWastes.unselected);\n this.pieceCollectionResourcesWastes.selected.splice(0, 0, ...data.pieceCollectionResourcesWastes.selected);\n this.pieceCollectionResourcesWastes.unselected.splice(0, 0, ...data.pieceCollectionResourcesWastes.unselected);\n this.collectionResourcesStock.splice(0, 0, ...data.collectionResourcesStock);\n this.pieceCollectionResourcesStock.splice(0, 0, ...data.pieceCollectionResourcesStock);\n this.permissions.canEdit = data.permissions.canEdit;\n this.sentences = data.sentences;\n })\n .catch((error) => { \n console.log('Error retrieving tab content : ' + error); \n })\n .then(() => {\n this.loading = false;\n });\n }\n },\n mounted(){\n\n },\n created() {\n this.loadContent();\n }\n});","import Vue from 'vue';\nimport array from 'lodash/array';\nimport axios from 'axios';\nimport qs from 'qs';\nimport InputField from '../../general/elements/inputfield';\nimport OutsourcersFilter from '../readeableids/outsourcersfilter';\n\nexport default Vue.component('resourcestock', {\n components:{\n 'inputfield': InputField,\n 'outsourcersfilter': OutsourcersFilter\n },\n template:`\n \n \n \n
\n \n
\n \n \n {{resource.code}}\n {{resource.name}}\n {{fractionsList.join(', ')}}\n \n \n \n \n {{resource.amount}}\n \n {{resource.forecastAmount}}\n \n \n \n \n {{resource.outsourcer.name}}\n \n \n \n \n \n \n `,\n data: function(){\n return {\n axe: axios.create({\n baseURL: '/webapi/servicepointstock',\n paramsSerializer: function(params) {\n return qs.stringify(params, { indices: false, allowDots: true, skipNulls: true })\n }\n }),\n disabledInputs: this.readonly\n }\n },\n props:{\n resource: Object,\n resourceImage: String,\n readonly: { type: Boolean, default: true },\n permissions: Object\n },\n computed: {\n fractionsList(){\n return array.uniq(this.resource.fractions.map(x => x.code));\n }\n },\n methods: {\n editCollectionResource(resource, event){\n event.stopPropagation();\n this.disabledInputs = !this.disabledInputs;\n },\n updateStock: _.debounce(function(e) {\n const oldAmount = this.resource.amount,\n newAmount = e.target.value,\n changedAmount = newAmount - oldAmount;\n\n this.validateStockUpdate(newAmount, response => {\n if (response && response.data) {\n this.resource.forecastAmount += changedAmount;\n this.resource.amount = newAmount;\n } else {\n this.resource.amount = oldAmount;\n }\n this.$forceUpdate();\n }); \n }, 300),\n validateStockUpdate(amount, callback) {\n let resource = Object.assign({}, this.resource);\n resource.amount = amount;\n\n return this.axe.get('/IsStockUpdateValid', { params: { request: { servicePointId: this.$root.servicePointId, resource: resource }}})\n .then((response) => { callback(response); })\n .catch((error) => { console.log('Error validating stock update: ' + error); });\n }\n }\n});","import Vue from 'vue';\nimport array from 'lodash/array';\nimport OutsourcersFilter from '../readeableids/outsourcersfilter';\n\nexport default Vue.component('piececollectionresourcestock', {\n components:{\n 'outsourcersfilter': OutsourcersFilter\n },\n template:`\n \n \n \n \n \n \n \n {{resource.code}}\n {{resource.name}}\n {{fractionsList.join(', ')}}\n \n \n \n \n {{resource.outsourcer.name}}\n \n \n \n \n \n \n \n \n \n \n
\n \n
\n \n \n \n {{fraction.code}} {{fraction.subFraction}}\n \n \n \n
\n `,\n data: function(){\n return {\n expanded: false,\n disabledInputs: this.readonly\n }\n },\n props:{\n resource: Object,\n resourceImage: String,\n readonly: { type: Boolean, default: true },\n permissions: Object\n },\n computed: {\n fractionsList(){\n return array.uniq(this.resource.fractions.map(x => x.code));\n }\n },\n methods:{\n editCollectionResource(resource, event){\n event.stopPropagation();\n this.disabledInputs = !this.disabledInputs;\n }\n }\n});","import Vue from 'vue';\nimport Tab from '../general/tab';\nimport axios from 'axios';\nimport * as FormHelpers from '../../helpers/formhelpers';\nimport 'jquery-validation';\n\nexport default Vue.component('pickupdetailtab', {\n extends: Tab,\n data: function(){\n return {\n servicePointId: null,\n axe: axios.create({\n baseURL: '/mywecycle/servicepoint'\n }),\n form: null,\n validator: null\n }\n },\n methods:{\n /**\n *Initializes the pickup details tab form\n *\n * @param {*} tabElem\n */\n initializeForm(tabElem){\n this.form = tabElem.find('.js-pickup-details');\n this.validator = this.form.validate({\n errorClass: 'invalid-feedback animated fadeIn',\n errorElement: 'div',\n errorPlacement: (error, el) => {\n $(el).addClass('is-invalid');\n $(el).parents('.form-group').append(error);\n },\n highlight: el => {\n $(el).parents('.form-group').find('.is-invalid').removeClass('is-invalid').addClass('is-invalid');\n },\n success: el => {\n $(el).parents('.form-group').find('.is-invalid').removeClass('is-invalid');\n $(el).remove();\n },\n });\n },\n validateTab(){\n let validTab = false;\n\n if (!MyStichtingOpen.ServicePoints.checkMinimumOpeningHours()) {\n $('[data-toggle=\"minimalhourswarning\"]').removeClass('d-none');\n } else {\n $('[data-toggle=\"minimalhourswarning\"]').addClass('d-none');\n validTab = this.validator.form();\n }\n\n return validTab;\n },\n saveTab(){\n if(this.validateTab()){\n let formData = FormHelpers.getFormData(this.form);\n\n this.axe.post('/servicepointpickupdetails', formData)\n .then((response) => { return true; })\n .then((submitedWithSuccess) => {\n if(submitedWithSuccess){ this.$emit('submit', true); }\n })\n .catch((error) => {\n console.log('Error saving detail tab : ' + error);\n this.$emit('submiterror');\n }); \n }\n },\n initializeContent(tabElem){\n this.initializeForm(tabElem);\n One.helpers(['core-bootstrap-popover', 'core-bootstrap-tooltip', 'core-toggle-class', 'select2', 'datepicker', 'masked-inputs', 'maxlength', 'table-tools-sections']);\n MyStichtingOpen.ServicePoints.openingHours();\n },\n loadContent(){\n this.servicePointId = this.$parent.servicePointId;\n this.axe.get('/servicepointpickupdetailstab?', { params: { servicePointId: this.servicePointId }})\n .then((response) => { return this.renderTabContent(response.data); })\n .then((tabElem) => { this.initializeContent(tabElem) })\n .catch((error) => { console.log('Error retrieving tab content : ' + error); });\n }\n },\n mounted(){\n\n },\n created() {\n this.loadContent();\n }\n});","import 'url-search-params-polyfill';\n\nexport default {\n data: () => ({\n $urlParameters: undefined\n }),\n created() {\n this.$urlParameters = new URLSearchParams(window.location.search);\n },\n computed: {\n $isEmbedded() {\n return this.$urlParameters && this.$urlParameters.has('embed') && this.$urlParameters.get('embed') === 'true';\n }\n },\n};","import Vue from 'vue';\nimport moment from 'moment';\nimport axios from 'axios';\n\nexport default Vue.component('contract-detail', {\n data: () => ({\n axe: axios.create({\n baseURL: '/mywecycle/contract'\n }),\n loading: false,\n }),\n computed: {\n isDownloadableContract() {\n // A contract is considered downloadable when it's in status agreed, terminationRequested, terminated or terminationAccepted and not autoapproved\n const statusActive = [2,3,4,6].includes(this.contract.status);\n return statusActive && !(this.contract.type === 5 || this.contract.type === 6);\n },\n isParticipationAgreement() {\n return this.contract.type === 1;\n },\n isGenerallyBindingStatementRequestLightRec() {\n return this.contract.type === 2;\n },\n isParticipationAgreementWecycle() {\n return this.contract.type === 3;\n },\n isBasicCollectionAgreement() {\n return this.contract.type === 4;\n },\n agreedToAllTerms() {\n return this.terms.every(t => t.agreedTo);\n },\n validationMessages() {\n const unagreedTerms = this.terms.filter(t => !t.agreedTo);\n let validationMessages = [];\n\n unagreedTerms.forEach(t => {\n validationMessages.push(t.validationMessage);\n });\n\n return validationMessages;\n },\n parsedFiles() {\n let files = [];\n this.files.forEach(f => {\n f.dateTimeFormatted = moment(f.dateTime).format('DD-MM-YYYY - HH:MM');\n files.push(f);\n })\n return files;\n },\n isBOuser() {\n return utils.isBoUser();\n }\n },\n methods: {\n removeAttachment(e) {\n e.preventDefault();\n const target = e.currentTarget;\n const url = target.getAttribute('href');\n const id = target.getAttribute('data-file-id');\n const msg = target.getAttribute('data-confirmation-msg');\n const confirm = window.confirm(msg);\n\n // get file index for removing it later on\n const index = _.findIndex(this.files, function(f) { \n return f.fileId === parseInt(id); \n });\n\n if (!confirm) {\n return;\n }\n \n this.loading = true;\n\n // Make API call, on success remove attachment from model so that the view updates\n axios.get(url)\n .then((resp) => {\n \n if(!resp.data.HasErrors) { \n // slice this.files\n this.files.splice(index, 1);\n\n // show msg\n One.helpers('notify', { type: 'success', icon: 'fa fa-check mr-1', message: resp.data.Message });\n\n } else {\n // show msg\n One.helpers('notify', { type: 'warning', icon: 'fa fa-exclamation-mark mr-1', message: resp.data.Message });\n }\n })\n .catch((error) => {\n console.log(error);\n })\n .finally(() => {\n this.loading = false;\n });\n },\n acceptAgreement() {\n this.loading = true;\n\n let response;\n this.axe.post(\"/ContractAgreement\", this.contract)\n .then((resp) => {\n response = resp.data;\n if (response.hasErrors) {\n One.helpers('notify', { type: response.notification.type, icon: 'fa fa-exclamation-triangle mr-1', message: response.notification.content });\n } else {\n window.location.href = response.redirectUrl;\n }\n })\n .catch((error) => {\n console.log(error);\n })\n .finally(() => {\n this.loading = false;\n });\n },\n requestTermination() {\n this.loading = true;\n\n let response;\n this.axe.post(\"/RequestTermination\", this.contract)\n .then((resp) => {\n response = resp.data;\n if (response.hasErrors) {\n One.helpers('notify', { type: response.notification.type, icon: 'fa fa-exclamation-triangle mr-1', message: response.notification.content });\n } else {\n window.location.href = response.redirectUrl;\n }\n })\n .catch((error) => {\n console.log(error);\n })\n .finally(() => {\n this.loading = false;\n });\n\n },\n downloadContract() {\n window.open(this.axe.defaults.baseURL + \"/DownloadContract?ContractId=\" + this.contract.contractId);\n },\n downloadExampleContract() {\n // Make sure terms are loaded and downloadExampleContract term exists\n if (this.terms.length > 0) {\n const downloadExampleContractTerm = this.terms.find(t => t.key === \"DownloadExampleContract\");\n if (downloadExampleContractTerm && !downloadExampleContractTerm.agreedTo) {\n downloadExampleContractTerm.agreedTo = true;\n }\n }\n \n window.open(this.axe.defaults.baseURL + \"/DownloadExampleContract?ContractId=\" + this.contract.contractId);\n },\n optOut() {\n this.openModal('modal-contract-opt-out');\n },\n openModal(id) {\n window.$('#' + id).modal('show');\n }\n }\n});","import Vue from 'vue';\nimport axios from 'axios';\n\nexport default Vue.component('contract-overview', {\n data: () => ({\n axe: axios.create({\n baseURL: '/mywecycle/contract'\n }),\n importFile: null,\n templateFileUrl: null,\n loading: false\n }),\n methods: {\n openModal() {\n if (this.templateFileUrl) {\n window.$('#modal-contract-import').modal('show');\n } else {\n let response;\n this.axe.get(\"/GetImportTemplateFileUrl\")\n .then((resp) => {\n response = resp.data;\n if (response.TemplateFileUrl !== \"\")\n this.templateFileUrl = response.TemplateFileUrl;\n })\n .catch((error) => {\n console.log(error);\n })\n .finally(() => {\n window.$('#modal-contract-import').modal('show');\n });\n }\n },\n downloadTemplate() {\n window.open(this.templateFileUrl);\n },\n uploadFile(event) {\n this.importFile = event.target.files[0];\n },\n importContracts() {\n this.loading = true;\n \n let formData = new FormData();\n formData.append('ImportContractsFile', this.importFile, this.importFile.name);\n \n let response;\n this.axe.post(\"/UploadContractsFile\", formData)\n .then((resp) => {\n response = resp.data;\n One.helpers('notify', { type: response.notification.type, icon: response.notification.type == 'success' ? 'fa fa-check mr-1' : 'fa fa-exclamation-triangle mr-1', message: response.notification.content });\n \n // Close modal if successfull\n if (!response.hasErrors) {\n window.$('#modal-contract-import').modal('hide');\n }\n })\n .catch((error) => {\n console.log(error);\n })\n .finally(() => {\n this.loading = false;\n });\n },\n }\n});","import Vue from 'vue';\n\n/* Vue does not allow inline styling blocks.\nhttps://dev.to/plop/how-to-inline-the-style-tag-in-vue-2j26 */\nexport default Vue.component('v-style', {\n render: function (createElement) {\n return createElement('style', this.$slots.default)\n }\n});","import Vue from 'vue';\nimport axios from 'axios';\nimport MaskedInput from 'vue-masked-input';\n\nexport default Vue.component('shortcuts', {\n components: {\n MaskedInput\n },\n template:`\n \n \n\n
\n
\n
\n
\n
\n

{{ model.title }}

\n
\n \n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n

{{ activeShortcut.title }}

\n
\n
\n

{{ message }}

\n\n
\n \n \n
\n
\n
\n
\n
\n
\n
\n `,\n data: () => ({\n activeModal: false,\n axe: axios.create({\n baseURL: '/mywecycle'\n }),\n hasErrors: false,\n keyMap: [],\n loading: false,\n message: undefined,\n model: undefined,\n rawValue: undefined,\n shortcutIndex: undefined,\n value: undefined,\n }),\n props: [\"rawModel\"],\n computed: {\n activeShortcut() {\n if (this.shortcutIndex) {\n return this.model.shortcuts[this.shortcutIndex];\n } else {\n return this.model.shortcuts[0];\n }\n }\n },\n watch: {\n value: function (value) {\n if (value && value.trim().length === 10) {\n this.search();\n } else {\n // Clear error message\n this.hasErrors = false;\n this.message = undefined;\n }\n }\n },\n created() {\n this.model = JSON.parse(this.rawModel);\n\n onkeydown = onkeyup = (e) => {\n // Stop logging keys when modal is active\n if (!this.activeModal) {\n e = e || event; // Deal with IE\n this.keyMap[e.code] = e.type == 'keydown';\n\n // Search for match with shortcuts\n for (const i in this.model.shortcuts) {\n const shortcut = this.model.shortcuts[i];\n\n // If shortcut has matched\n if (this.isMatch(shortcut.keys)) {\n\n // Set active shortcut index\n this.shortcutIndex = i;\n\n // Open modal\n this.openModal('shortcutModal');\n\n // Reset keyMap\n this.keyMap = [];\n\n // Prevent event to bubble up further\n return false;\n }\n }\n }\n }\n },\n mounted() {\n // Reset values\n window.$('#shortcutModal').on('hidden.bs.modal', () => {\n this.hasErrors = false;\n this.value = undefined;\n this.activeModal = false;\n this.shortcutIndex = undefined;\n });\n \n // Set focus on search input when modal is opened\n window.$('#shortcutModal').on('shown.bs.modal', () => {\n this.setFocus();\n });\n },\n methods: {\n isMatch(keys) {\n const keyMatches = [];\n\n for (const i in keys) {\n const key = keys[i];\n if (key.key === 'Control') {\n keyMatches.push((this.keyMap['ControlLeft'] || this.keyMap['ControlRight']));\n } else if (key.key === 'Alt') {\n keyMatches.push((this.keyMap['AltLeft'] || this.keyMap['AltRight']));\n } else {\n keyMatches.push(this.keyMap[key.code]);\n }\n }\n\n return !keyMatches.includes(undefined);\n },\n openModal(modalId) {\n // Close all other open modals\n window.$('.modal').modal('hide');\n\n // Open modal\n window.$('#' + modalId).modal('show').appendTo('body');\n \n // Set activeModal to true to prevent further logging\n if (modalId === 'shortcutModal') {\n this.activeModal = true;\n }\n\n // Catch \"enter\" event and trigger search when focused on search input\n if (!this.$refs.search.$refs) {\n this.$refs.search.addEventListener('keyup', (e) => {\n e = e || event; // Deal with IE\n if (e.code === 'Enter') {\n this.search();\n }\n });\n }\n },\n setFocus() {\n if (this.$refs.search.$refs) {\n this.$refs.search.$refs.input.disabled = false;\n this.$refs.search.$refs.input.focus();\n } else {\n this.$refs.search.focus();\n }\n },\n search() {\n this.hasErrors = false;\n this.loading = true;\n const parameters = {};\n parameters[this.activeShortcut.parameter] = this.value;\n\n this.axe.post(this.activeShortcut.action, parameters)\n .then((response) => { \n const data = response.data;\n if (!data.HasErrors) {\n window.location.href = data.RedirectUrl\n } else {\n this.hasErrors = data.HasErrors;\n this.message = data.Message;\n }\n })\n .catch((error) => {\n console.log(error);\n })\n .finally(() => {\n this.loading = false;\n this.setFocus();\n });\n }\n }\n});","import Vue from 'vue';\nimport axios from 'axios';\n\nexport default Vue.component('order-detail', {\n data: () => ({\n axe: axios.create({\n baseURL: '/mywecycle/order'\n }),\n targetLines: null,\n amountOfLines: null,\n totalWeight: null,\n loading: false\n }),\n methods: {\n handleClick(event) {\n // Check for the right element\n if (event.target.matches('[data-divide-weight]')) {\n this.openModal(event.target.dataset.divideWeight, event);\n }\n },\n openModal(type, event) {\n // Set target lines\n this.targetLines = event.target.closest('tbody').querySelectorAll('input[id*=\"' + type + '\"]:not([readonly])');\n // Open modal\n window.$('#modal-divide-total-weight').modal('show');\n },\n divideWeight() {\n const params = {\n number: this.targetLines.length,\n totalWeight: parseInt(this.totalWeight)\n }\n\n let response;\n this.axe.get(\"/CollectionResourceDivideWeight\", { params })\n .then((resp) => {\n response = resp.data;\n\n // Fill divided weights\n response.dividedWeights.forEach((w, i) => {\n this.targetLines[i].value = w;\n });\n\n // Close modal\n window.$('#modal-divide-total-weight').modal('hide');\n\n // Clear total weight\n this.totalWeight = null;\n\n // Reset validation\n this.$refs.divideTotalWeight.reset();\n })\n .catch((error) => {\n console.log(error);\n })\n .finally(() => {\n });\n }\n }\n});","import Vue from 'vue';\nimport Overview from '../../general/overview-grid/overview';\nimport AdvancedSearch from './advanced-search';\nimport Grid from './grid';\nimport ExportFailureModal from './exportfailure-modal';\n\nexport default Vue.component('orderoverview', {\n extends: Overview,\n components:{\n 'advancedsearch': AdvancedSearch,\n 'grid': Grid\n },\n methods:{\n /** Builds the overview actions array */\n buildActions(){\n return [{ title: this.resources.actions.export, onclick: this.exportOrders, icon: 'si si-share-alt mr-2' }];\n },\n exportOrders(){\n var requestParameters = {\n pageSize: this.queryParameters.pageSize,\n totalRecordCount: this.pagination.totalRecordCount\n };\n\n this.axe.get('/canexportorders', { \n params: { paginationData: requestParameters }\n }).then((response) => {\n if(response.data.openExportModal){\n this.showExportModal(response.data);\n } else {\n window.location.href = response.data.exportUrl;\n }\n }).catch((thrown) => {\n console.log('app error', thrown.message);\n }).then(() => {\n \n });\n },\n showExportModal(canExportOrdersData){\n this.$modal.show(ExportFailureModal, { \n canExport: canExportOrdersData.canExport,\n resources: canExportOrdersData.resources\n }, {\n adaptive: true,\n height: 'auto',\n maxWidth: 300\n });\n }\n }\n});","import vueVimeoPlayer from 'vue-vimeo-player';\nimport Vue from 'vue';\nimport axios from 'axios';\n\nimport { ValidationProvider, ValidationObserver, extend } from 'vee-validate';\nimport { required, email } from 'vee-validate/dist/rules';\n\nextend('required', required);\nextend('email', email);\n\nVue.use(vueVimeoPlayer);\n\nexport default Vue.component('quiz', {\n components: {\n ValidationProvider, ValidationObserver\n },\n data: () => ({\n axe: axios.create({\n baseURL: '/wecyclecp/quiz'\n }),\n questionIndex: 0,\n userResponses: [],\n started: false,\n maxScore: 0,\n retrievingPostal: false,\n finished: false,\n videos: [],\n images: [],\n videoIndex: 0,\n videoPosition: 0,\n autoplayNotAllowed: false\n }),\n created() {\n this.videos = [\n ['460479318'],\n ['460479478'],\n ['460479471'],\n ['460479487'],\n ['460479367', '460479326'],\n ['460479185']\n ];\n\n // Init null variables with empty string to prevent issues with VeeValidate on android\n this.submission.name = \"\";\n this.submission.emailAddress = \"\";\n this.submission.postalCode = \"\";\n },\n mounted() {\n this.userResponses = Array(this.questions.length).fill(null);\n this.calculateMaxScore();\n this.preloadImages();\n\n if (this.isMobile) {\n this.autoplayNotAllowed = true;\n }\n },\n computed: {\n validPostal() {\n let regex = new RegExp(/^[1-9][0-9]{3} ?(?!sa|sd|ss)[a-z]{2}$/i);\n if (regex.test(this.submission.postalCode)) {\n return true;\n }\n return false;\n },\n isMobile() {\n if(/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {\n return true\n } else {\n return false\n }\n }\n },\n methods: {\n start() {\n this.started = true;\n this.getServicePoints();\n\n //video loading\n this.updateVideo(1);\n this.scrollToTop();\n },\n restart() {\n this.questionIndex = 0;\n this.userResponses = Array(this.questions.length).fill(null);\n\n //video loading\n this.updateVideo(1);\n },\n toggleOption(answer, index) {\n //check if responses contain index\n if (this.userResponses[this.questionIndex] === null) {\n this.userResponses[this.questionIndex] = [];\n }\n if (this.userResponses[this.questionIndex].indexOf(answer.text) !== -1) {\n //remove from responses\n var item = this.userResponses[this.questionIndex].indexOf(answer.text);\n if (item !== -1) {\n this.userResponses[this.questionIndex].splice(item, 1);\n }\n } else {\n //add to responses\n let arr = this.userResponses[this.questionIndex];\n arr.push(answer.text);\n Vue.set(this.userResponses, this.questionIndex, arr);\n }\n },\n optionIsSelected(answer, index) {\n if (this.userResponses[this.questionIndex] !== null) {\n if (this.userResponses[this.questionIndex].indexOf(answer.text) !== -1) {\n return true;\n }\n }\n return false;\n },\n questionAnswered(question) {\n if (question !== null) {\n if (question.length > 0) {\n return true;\n }\n }\n return false;\n },\n next() {\n if (this.questionIndex < this.questions.length) {\n this.questionIndex++;\n\n // Last question was answered\n if (this.questionIndex == this.questions.length) { }\n else { }\n\n\n if (this.questionIndex >= this.questions.length && this.score() >= this.maxScore) {\n //scoring page\n this.updateVideo(this.videoIndex + 1, 1);\n\n } else {\n this.updateVideo(this.videoIndex + 1);\n }\n }\n this.scrollToTop();\n },\n prev() {\n if (this.questionIndex > 0) {\n this.questionIndex--;\n\n //video loading\n this.updateVideo(this.videoIndex - 1);\n }\n this.scrollToTop();\n },\n scrollToTop() {\n window.scrollTo({ top: 0, behavior: 'smooth' });\n },\n preloadImages() {\n var i;\n for (i = 0; i < this.questions.length; i++) {\n let img = new Image();\n img.src = `assets/wecycleCP/images/quiz/questions/question-${i + 1}.png`;\n }\n },\n score() {\n let score = 0;\n\n this.questions.forEach((q, i) => {\n this.questions[i].answers.forEach(answer => {\n // Make sure there's a response\n if (this.userResponses[i]) {\n if (answer.isCorrect) {\n // Answer should be correct. check in answers\n if (this.userResponses[i].indexOf(answer.text) !== -1) {\n score++;\n }\n } else {\n // Answer should not be marked. check in answers\n if (this.userResponses[i].indexOf(answer.text) === -1) {\n score++;\n }\n }\n } else {\n // Means the answer is skipped > for reference\n }\n })\n })\n \n // Add score to submission\n this.submission.score = score;\n\n return score;\n },\n updateVideo(newIndex, position = 0) {\n\n // Pause current video\n this.$refs.player.pause();\n // Update video\n this.videoPosition = position;\n\n this.videoIndex = newIndex;\n },\n playerLoaded() {\n //when player loaded, start playing video (also fires when video is updated)\n this.$refs.player.play();\n },\n playerEnded() {\n //when player ended, hide video (or do something else to hide vimeo related)\n },\n playerError(params) {\n if (params.name === 'NotAllowedError') {\n //user has not yet authorized website to play video's\n this.autoplayNotAllowed = true;\n }\n },\n playerPlay() {\n this.$refs.player.play();\n this.autoplayNotAllowed = false;\n },\n shuffle(array) {\n for (let i = array.length - 1; i > 0; i--) {\n const j = Math.floor(Math.random() * (i + 1));\n [array[i], array[j]] = [array[j], array[i]];\n }\n return array;\n },\n calculateMaxScore() {\n //maxScore is equal to the amount of questions\n this.maxScore = 0;\n this.questions.forEach((question) => {\n question.answers.forEach((answer) => {\n this.maxScore++;\n });\n });\n },\n getServicePoints() {\n let response;\n this.retrievingPostal = true;\n this.axe.get(\"/GetServicePoints?address=\" + this.submission.postalCode)\n .then((resp) => {\n response = resp.data;\n\n // Add answers to questions\n if (response.length > 0) {\n this.questions[2].answers = [];\n }\n\n response.forEach(servicePoint =>\n this.questions[2].answers.push({\n text: servicePoint.name,\n isCorrect: true\n })\n );\n\n // Shuffle answers\n this.questions[2].answers = this.shuffle(this.questions[2].answers);\n })\n .catch((error) => {\n console.log(error);\n })\n .finally(() => {\n this.calculateMaxScore();\n this.retrievingPostal = false;\n });\n },\n onSubmit() {\n let response;\n this.axe.post(\"/SubmitResult\", this.submission)\n .then((resp) => {\n response = resp.data;\n })\n .catch((error) => {\n console.log(error);\n })\n .finally(() => {\n this.finished = true;\n this.updateVideo(this.videoIndex + 1);\n this.scrollToTop();\n });\n }\n },\n watch: {\n userResponses: function(newResponses, oldResponses) {\n this.submission.answers = newResponses.reduce((acc, val) => acc.concat(val), []).filter(Boolean).join('|');\n }\n }\n});","import Vue from 'vue';\nimport array from 'lodash/array';\nimport SelectList from '../../general/elements/selectlist';\nimport ResourceStock from './resourcestock';\nimport PieceCollectionResourceStock from './piececollectionresourcestock';\n\nexport default Vue.component('stockmanager', {\n components:{\n 'selectlist': SelectList,\n 'resourcestock': ResourceStock,\n 'piececollectionresourcestock': PieceCollectionResourceStock\n },\n template:`\n
\n
\n

{{sentences.title}}

\n
\n
\n
\n

{{sentences.collectionResourcesTitle}}

\n \n \n \n \n \n \n \n \n \n \n \n \n \n 0\">\n \n \n \n \n
{{sentences.combination}}{{sentences.actionsColumnTitle}}
{{createWasteSelectOptionText(waste)}}\n \n
\n \n
\n
\n
\n

{{sentences.pieceCollectionTitle}}

\n \n \n \n \n \n \n \n 0\">\n \n \n \n \n \n 0\">\n \n \n \n \n
{{sentences.pieceCollectionTitle}}{{sentences.actionsColumnTitle}}
{{createWasteSelectOptionText(waste)}}\n \n
\n \n
\n
\n
\n
\n
0\">\n

{{sentences.collectionResources}}

\n

{{sentences.overviewCollectionResources}}

\n \n \n \n \n \n \n \n \n \n \n \n \n \n w.collectionResource === resource.code).resourceImage, permissions: permissions}\" />\n
\n \n {{sentences.abbr}}{{sentences.fullName}}{{sentences.fractions}}{{sentences.stock}}{{sentences.exceptOpenOrders}}{{sentences.stock}}{{sentences.includeOpenOrders}}{{sentences.outsourcedTo}}{{sentences.actionsColumnTitle}}
\n
\n
0\">\n

{{sentences.pieceCollection}}

\n

{{sentences.overviewRotation}}

\n \n \n \n \n \n \n \n \n \n \n \n \n w.collectionResource === resource.code).resourceImage, permissions: permissions}\" />\n
\n \n {{sentences.abbr}}{{sentences.fullName}}{{sentences.fractions}}{{sentences.outsourcedTo}}{{sentences.actionsColumnTitle}}
\n
\n
\n
\n `,\n data: function(){\n return {\n }\n },\n props:{\n collectionResourcesWastes: Object,\n pieceCollectionResourcesWastes: Object,\n collectionResourcesStock: Array,\n pieceCollectionResourcesStock: Array,\n permissions: Object,\n sentences: Object\n },\n computed: {\n collectionResourcesWastesListSettings(){\n return this.createWasteSelectOptions(this.collectionResourcesWastes.unselected);\n },\n pieceCollectionResourcesWastesListSettings(){\n return this.createWasteSelectOptions(this.pieceCollectionResourcesWastes.unselected);\n }\n },\n methods:{\n getResourceStock(collectionResource){\n let index = array.findIndex(this.collectionResourcesStock, ['code', collectionResource]);\n let resourceStock = this.collectionResourcesStock[index];\n\n return resourceStock;\n },\n getPieceCollectionResourceStock(collectionResource){\n let index = array.findIndex(this.pieceCollectionResourcesStock, ['code', collectionResource]);\n let resourceStock = this.pieceCollectionResourcesStock[index];\n\n return resourceStock;\n },\n createWasteSelectOption(waste){\n return {\n id: waste.id,\n text: this.createWasteSelectOptionText(waste),\n }\n },\n createWasteSelectOptionText(waste){\n return [waste.collectionResource, waste.fraction, waste.subFraction, waste.productName].filter(x => x).join(' - ');\n },\n createWasteSelectOptions(wastes){\n wastes.sort(this.wasteCollectionSort);\n\n let defaultOption = this.createSelectDefaultOption();\n let wasteOptions = wastes.map(this.createWasteSelectOption);\n \n wasteOptions.splice(0, 0, defaultOption);\n\n return { items: wasteOptions };\n },\n\n createResourceStock(waste){\n return {\n code: waste.collectionResource,\n name: waste.name,\n fractions: [{ code: waste.fraction, resourceImage: waste.resourceImage }],\n amount: 0,\n forecastAmount: 0,\n outsourcer: { id: null, code: null, name: null }\n };\n },\n createSelectDefaultOption(){\n return { text: this.sentences.pleaseSelectWaste };\n },\n /**\n * Move selected waste combination from unselected to selected list \n * */\n selectedCollectionWasteCombination(wasteCombinationId){\n let unselectedWastes = this.collectionResourcesWastes.unselected;\n let selectedWastes = this.collectionResourcesWastes.selected;\n let index = array.findIndex(unselectedWastes, ['id', wasteCombinationId]);\n let waste = unselectedWastes[index];\n \n unselectedWastes.splice(index, 1);\n selectedWastes.push(waste);\n selectedWastes.sort(this.wasteCollectionSort);\n\n // get resource stock, and add fractions to array\n let resourceStock = this.getResourceStock(waste.collectionResource);\n\n if(resourceStock !== undefined){\n resourceStock.fractions.push({code: waste.fraction, resourceImage: waste.resourceImage });\n resourceStock.fractions.sort(this.resourceStockSort);\n } else {\n this.collectionResourcesStock.push(this.createResourceStock(waste));\n this.collectionResourcesStock.sort(this.resourceStockSort);\n }\n },\n /**\n * Move selected waste combination from selected to unselected list.\n * Remove fraction from resource stock item, if last one was removed, remove the entry completly.\n */\n removeCollectionWasteCombination(wasteCombinationId){\n let unselectedWastes = this.collectionResourcesWastes.unselected;\n let selectedWastes = this.collectionResourcesWastes.selected;\n let index = array.findIndex(selectedWastes, ['id', wasteCombinationId]);\n let waste = selectedWastes[index];\n \n selectedWastes.splice(index, 1);\n unselectedWastes.push(waste);\n\n // get resource stock, and add fractions to array\n let resourceStock = this.getResourceStock(waste.collectionResource);\n \n if(resourceStock !== undefined){\n let fractionIndex = array.findIndex(resourceStock.fractions, ['code', waste.fraction]);\n \n resourceStock.fractions.splice(fractionIndex, 1);\n\n if(resourceStock.fractions.length === 0){\n let index = array.findIndex(this.collectionResourcesStock, ['code', waste.collectionResource]);\n this.collectionResourcesStock.splice(index, 1);\n }\n }\n },\n /** \n * Move selected waste combination from unselected to selected list \n * */\n selectedPieceCollectionWasteCombination(wasteCombinationId){\n let unselectedWastes = this.pieceCollectionResourcesWastes.unselected;\n let selectedWastes = this.pieceCollectionResourcesWastes.selected;\n let index = array.findIndex(unselectedWastes, ['id', wasteCombinationId]);\n let waste = unselectedWastes[index];\n\n unselectedWastes.splice(index, 1);\n selectedWastes.push(waste);\n selectedWastes.sort(this.wasteCollectionSort);\n\n // get resource stock, and add fractions to array\n let resourceStock = this.getPieceCollectionResourceStock(waste.collectionResource);\n\n if(resourceStock !== undefined){\n resourceStock.fractions.push({code: waste.fraction, resourceImage: waste.resourceImage });\n resourceStock.fractions.sort(this.resourceStockSort);\n } else {\n this.pieceCollectionResourcesStock.push(this.createResourceStock(waste));\n this.pieceCollectionResourcesStock.sort(this.resourceStockSort);\n }\n },\n removePieceCollectionWasteCombination(wasteCombinationId){\n let unselectedWastes = this.pieceCollectionResourcesWastes.unselected;\n let selectedWastes = this.pieceCollectionResourcesWastes.selected;\n let index = array.findIndex(selectedWastes, ['id', wasteCombinationId]);\n let waste = selectedWastes[index];\n \n selectedWastes.splice(index, 1);\n unselectedWastes.push(waste);\n\n // get resource stock, and add fractions to array\n let resourceStock = this.getPieceCollectionResourceStock(waste.collectionResource);\n \n if(resourceStock !== undefined){\n let fractionIndex = array.findIndex(resourceStock.fractions, ['code', waste.fraction]);\n \n resourceStock.fractions.splice(fractionIndex, 1);\n\n if(resourceStock.fractions.length === 0){\n let index = array.findIndex(this.pieceCollectionResourcesStock, ['code', waste.collectionResource]);\n this.pieceCollectionResourcesStock.splice(index, 1);\n }\n }\n },\n resourceStockSort(resourceA, resourceB){\n return resourceA.code.localeCompare(resourceB.code); \n },\n wasteCollectionSort(wasteA, wasteB){\n if(wasteA.collectionResource === wasteB.collectionResource){\n if(wasteA.fraction === wasteB.fraction){\n if(wasteA.subFraction === wasteB.subFraction){\n return wasteA.product.localeCompare(wasteB.product);\n }\n return wasteA.subFraction.localeCompare(wasteB.subFraction);\n }\n return wasteA.fraction.localeCompare(wasteB.fraction);\n }\n return wasteA.collectionResource.localeCompare(wasteB.collectionResource);\n }\n }\n});","import axios from 'axios';\nimport Vue from 'vue';\nimport TabManager from '../general/tabmanager';\nimport DetailTab from './detailtab';\nimport PickupDetailTab from './pickupdetailtab';\nimport EstimationsTab from './estimationstab';\nimport InventoryTab from './inventorytab';\nimport BackofficeTab from './backofficetab';\n\nexport default Vue.component('servicepointedit', {\n extends: TabManager,\n components: {\n 'detail': DetailTab,\n 'pickupdetail': PickupDetailTab,\n 'estimations': EstimationsTab,\n 'inventory': InventoryTab,\n 'backoffice': BackofficeTab\n },\n props:{\n pageMode: Number,\n servicePointId: String\n },\n data: function(){\n return {\n axe: axios.create({\n baseURL: '/mywecycle/servicepoint'\n }),\n tabs:[],\n currentTab: undefined,\n resources: {\n previousButtonText: 'Prev',\n saveButtonText: 'Save',\n nextButtonText: 'Next'\n } \n }\n },\n methods:{\n /** set service point id if on create mode */\n onServicePointCreate(servicePointId){\n if(this.pageMode === 0){\n this.servicePointId = servicePointId;\n }\n },\n submitTab(){\n this.$refs.activeTabComponent.saveTab();\n }\n },\n mounted(){\n \n },\n created() {\n this.axe\n .get('/editdata', { params: { servicePointId: this.servicePointId }})\n .then((response) => {\n this.tabs = response.data.tabs;\n this.resources = response.data.resources;\n this.currentTab = this.getActiveTab();\n })\n .catch((error) => { console.log('Error retrieving page data : ' + error); });\n }\n});","import Foundation from 'foundation-sites/dist/js/foundation.min'; // due to foundation es6 issues...\nimport axios from 'axios';\nimport qs from 'qs';\nimport Vue from 'vue';\nimport VueMq from 'vue-mq';\nimport L from 'leaflet';\nimport style from '../../components/general/elements/style';\nimport FileDownload from 'js-file-download';\nimport * as setup from '../../setup';\nimport mapLeaflet from '../general/map-leaflet';\n\nconst CancelToken = axios.CancelToken;\nconst MaxZoomLevel = 12;\nlet cancel;\nlet typeTimer = null;\n\nVue.use(VueMq, {\n breakpoints: {\n sm: 450,\n md: 1250,\n lg: Infinity,\n }\n});\n\nexport default Vue.component('servicepointsearch', {\n components: {\n 'leaflet-map': mapLeaflet\n },\n data: function () {\n return {\n address: '',\n isSearching: false,\n selectedIndex: null,\n results: [],\n radiusDistance: 20,\n mapCenter: null,\n mapInitialized: false,\n resultListIsOpen: true,\n showFilters: true,\n showPanel: true\n };\n },\n watch: {\n selectedUserType: function (newValue) {\n if (+newValue === 0) {\n if (!this.selectedWasteTypes.includes(8)) {\n this.selectedWasteTypes.push(8)\n }\n }\n else{\n if (this.selectedWasteTypes.includes(8)) {\n const selectedWasteTypeIndex = this.selectedWasteTypes.findIndex((wasteType) => wasteType === 8)\n if (selectedWasteTypeIndex >= 0) {\n this.selectedWasteTypes.splice(selectedWasteTypeIndex, 1)\n }\n }\n }\n },\n },\n methods: {\n /** Transforms the LatLngBounds object into BoundModel object */\n transformMapBounds(mapBounds) {\n if (mapBounds === undefined)\n return null;\n\n return {\n SouthWest: { Latitude: mapBounds.getSouth(), Longitude: mapBounds.getWest() },\n NorthEast: { Latitude: mapBounds.getNorth(), Longitude: mapBounds.getEast() }\n }\n },\n /** Transforms the map center object into LocationModel object */\n transformMapCenter(mapCenter) {\n return mapCenter !== undefined ? { Latitude: mapCenter.lat, Longitude: mapCenter.lng } : null;\n },\n /** Builds the search parameters object */\n buildSearchParameters(mapBounds, mapCenter) {\n let searchParameters = {\n Address: this.address,\n RadiusDistance: this.radiusDistance,\n UserType: this.selectedUserType,\n WasteTypes: this.selectedWasteTypes,\n // CollectionWall: this.collectionWall,\n MapBound: this.transformMapBounds(mapBounds),\n Location: this.transformMapCenter(mapCenter)\n };\n\n return searchParameters;\n },\n /** build the marker for a service point */\n buildMarker(servicePoint) {\n\n let marker = null;\n\n let icon = L.divIcon({\n className: servicePoint.municipalityServicePoint ? 'map-icon map-icon--municipality' : 'map-icon',\n iconSize: L.point(40, 40),\n iconAnchor: [20, 40]\n });\n\n if (servicePoint != null) {\n marker = L.marker([servicePoint.lat, servicePoint.lon], {\n icon: icon,\n title: servicePoint.name,\n });\n\n marker.on('click', e => {\n this.showServicePointInfo(servicePoint);\n });\n }\n\n return marker;\n },\n unHighlightServicePointInfo(servicePoint){\n servicePoint.marker._icon ? servicePoint.marker._icon.classList.remove('hovering') : null;\n },\n highlightServicePointInfo(servicePoint){\n servicePoint.marker._icon ? servicePoint.marker._icon.classList.add('hovering') : null;\n },\n /** shows the service point map marker info window */\n showServicePointInfo(servicePoint) {\n this.selectedIndex = servicePoint.index;\n let popUp = this.$refs.mapcomponent.showInfoWindow(servicePoint);\n\n // Click event for report feedback button\n $(popUp._container).on('click', 'button[data-feedback]', e => {\n this.openFeedbackModal(servicePoint);\n });\n\n // Reset selected index when closing info popup\n $(popUp._closeButton).on('click', e => {\n this.selectedIndex = null;\n });\n },\n /** Downloads the service point ssds if available */\n downloadSSDSFile(servicePoint) {\n if (servicePoint.hasSSDSFile) {\n this.axe.get('/DownloadSSDSFile', { params: { servicePointId: servicePoint.id } })\n .then((response) => { FileDownload(response.data, servicePoint.sSDSFileName); })\n .catch((error) => { console.log('Error downloading ssds file : ' + error); });\n }\n },\n /** Handler for when the map boundaries has changed (on zoom, setCenter, drag end, initial render, etc) */\n onMapChanged(mapBounds) {\n this.performSearch(mapBounds);\n },\n /** Performs the search action using the specified map boundaries */\n performSearch(mapBounds) {\n\n // Prevent too zoomed out calls\n if (this.$refs.mapcomponent.zoomLevel < MaxZoomLevel) {\n\n // Clear results\n this.results = [];\n // Clear markers\n this.$refs.mapcomponent.clearMarkers();\n // Clear popups\n this.$refs.mapcomponent.map.closePopup();\n \n return;\n }\n\n let mapCenter = this.$refs.mapcomponent.getMapCenter();\n let searchParameters = this.buildSearchParameters(mapBounds, mapCenter);\n\n // Cancel any previous call\n cancel && cancel('cancelled because of subsequent calls');\n\n this.axe.get('/Search', { params: searchParameters, cancelToken: new CancelToken((c) => { cancel = c }) })\n .then((response) => {\n \n this.results = response.data.resultItems || [];\n\n if (this.results.length > 0) {\n this.showFilters = false; // Close filters\n this.selectedIndex = null; // Clear selected index\n }\n\n this.results = this.results.map((item, index) => {\n item.index = index; // Add index\n item.marker = this.buildMarker(item); // Build markers for map\n item.wasteTypes = item.wasteTypes.filter(wt => wt.type !== 5); // Filter wasteTypes to exclude \"Armaturen\"\n\n return item;\n });\n\n this.$refs.mapcomponent.showMarkers(this.results.map(r => { return r.marker }));\n })\n .catch((error) => {\n console.log('Error retrieving page data : ' + error);\n });\n },\n /** Handler for search input. Just get new map center based on the specified address. */\n searchByAddress() {\n\n // Set address to ref value\n this.address = this.$refs.address.value;\n\n // First center map on address\n this.retrieveMapCenter();\n },\n /** Handler for search with current location */\n searchByCurrentLocation() {\n this.getCurrentLocation((location) => {\n this.$refs.mapcomponent.centerMap(L.latLng(location.coords.latitude, location.coords.longitude));\n }, (errorMessage) => {\n console.log('Failure to retrieve current location : ' + errorMessage.message);\n });\n },\n /** Retrieves the current location, and executes the specified handlers. */\n getCurrentLocation(onSuccessHandler, onFailureHandler) {\n navigator.geolocation.getCurrentPosition(onSuccessHandler, onFailureHandler, { maximumAge: 5 * 60 * 1000 });\n },\n /** retrieves the initial map center based on the current search parameters */\n retrieveMapCenter() {\n\n // clear markers\n this.$refs.mapcomponent.clearMarkers();\n // clear popups\n this.$refs.mapcomponent.map.closePopup();\n\n if (this.address === \"\" || this.address === null) {\n // center map with default values\n this.$refs.mapcomponent.centerMap(undefined, 8);\n\n // clear results\n this.results = [];\n \n return;\n }\n\n let searchParameters = this.buildSearchParameters();\n\n this.axe.get('/GetMapCenter', { params: searchParameters })\n .then((response) => {\n //this.mapCenter = new google.maps.LatLng(response.data.mapCenter.latitude, response.data.mapCenter.longitude);\n this.mapCenter = L.latLng(response.data.mapCenter.latitude, response.data.mapCenter.longitude);\n })\n .then(() => { this.$refs.mapcomponent.centerMap(this.mapCenter); })\n .catch((error) => {\n console.log('Error retrieving map center : ' + error);\n });\n },\n openWasteTypeInfoModal() {\n let wasteTypeInfoModal = $('#wasteTypeInfoModal');\n wasteTypeInfoModal.foundation('open');\n },\n openProfessionalDeviceModal() {\n let professionalDeviceModal = $('#professionalDeviceModal');\n professionalDeviceModal.foundation('open');\n },\n openFeedbackModal(servicePoint) {\n\n // Empty any previously opened modals\n let feedbackModal = $('#feedbackModal');\n feedbackModal.html();\n\n // Create parameters object\n let parameters = {\n servicePointId: servicePoint.id,\n servicePointName: servicePoint.name\n };\n\n let axe = this.axe;\n\n // Get modal html\n axe.get('/ReportFeedbackModal', { params: parameters }).then((response) => {\n\n // Fill modal content\n feedbackModal.html(response.data).foundation('open');\n\n // Initialize Google recaptcha\n grecaptcha.render('g-recaptcha', {\n 'sitekey': '6Ld75GcbAAAAAHU7TOSdkggyMupa8XU5EJymeC0J'\n });\n\n // Initialize custom file validator\n Foundation.Abide.defaults.validators['file'] = function (el, required, parent) {\n\n let files = el[0].files;\n\n if (files != null && files.length) {\n\n let validFiles = false;\n\n $.each(files, function () {\n\n const acceptedFileTypes = [\n 'application/pdf', // pdf\n 'application/vnd.ms-excel', // xsl\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', // xslx\n 'image/jpeg', // jpg images\n 'image/png', // png images\n 'application/msword', // doc\n 'application/vnd.openxmlformats-officedocument.wordprocessingml.document' // docx\n ];\n\n // on top of filetype array, also allow .msg extension\n let acceptedFileType = ($.inArray(this.type, acceptedFileTypes) > -1 || this.name.indexOf('.msg') > -1);\n\n if (this.name === 'item' || typeof this.name === 'undefined') {\n // file(name) not approved\n validFiles = false;\n return;\n } else if (!acceptedFileType) {\n // filetype not accepted\n validFiles = false;\n return;\n } else if (((this.size / 1024).toFixed(2)) > 2048) {\n // file too big\n validFiles = false;\n return;\n }\n\n validFiles = true;\n return;\n });\n\n return validFiles;\n } else {\n // No files uploaded, return valid\n return true;\n }\n };\n\n // Initialize form validation\n let feedbackForm = feedbackModal.find('form');\n let feedbackFormValidation = new Foundation.Abide(feedbackForm, {\n liveValidate: true,\n validateOnBlur: true\n });\n\n feedbackForm.on('formvalid.zf.abide', function (e, form) {\n\n let grecaptchaResponse = grecaptcha.getResponse();\n\n if (grecaptchaResponse.length > 0) {\n\n // Post to controller action and handle response\n axe.post('/ReportFeedback', new FormData(form[0]), {\n headers: { 'Content-Type': 'multipart/form-data' }\n }).then((response) => {\n feedbackForm.replaceWith(response.data.message);\n }).catch((response) => {\n feedbackForm.replaceWith(response.data);\n }).finally(function () {\n return false;\n });\n }\n });\n\n feedbackForm.on('submit', function (e) {\n e.preventDefault();\n });\n\n let subjectType = feedbackForm.find('#SubjectTypeId');\n let subject = feedbackForm.find('#SubjectId');\n\n // Update subjects list on change of subject type\n subjectType.on('change', function (e) {\n\n if (e.target.value != '') {\n\n // Create parameters object\n let parameters = {\n SubjectTypeId: e.target.value\n };\n\n // Get subjects for subject type\n axe.get('/GetFeedbackSubjects', { params: parameters }).then((response) => {\n\n // Clear existing subjects list\n subject.empty();\n\n // Append new subjects\n $.each(response.data, function () {\n subject.append($('